Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用新模块目录指定的Zend 1.11控制器无效-只能使用IndexController.php_Php_Zend Framework - Fatal编程技术网

使用新模块目录指定的Zend 1.11控制器无效-只能使用IndexController.php

使用新模块目录指定的Zend 1.11控制器无效-只能使用IndexController.php,php,zend-framework,Php,Zend Framework,我正在尝试将模块api添加到我现有的Zend 1.x项目中,我只能导航到新模块的索引控制器,其他控制器似乎无法工作 项目布局如下: application -controllers -models -modules -api -controllers -models -views -Bootstrap.php -views 我已将以下行添加到我的应用程序.ini: resources.frontController.mod

我正在尝试将模块
api
添加到我现有的Zend 1.x项目中,我只能导航到新模块的索引控制器,其他控制器似乎无法工作

项目布局如下:

application
  -controllers
  -models
  -modules
    -api
      -controllers
      -models
      -views
      -Bootstrap.php
  -views
我已将以下行添加到我的
应用程序.ini

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] = ""
我还将这个空引导类添加到
/modules/api/

<?php
class Api_Boostrap extends Zend_Application_Module_Bootstrap {
}

?>
当我导航到
/api/index
,但是当我尝试在与上述
IndexController.php
相同的目录中添加一个名为
ProjectController.php
的新控制器时,这一点就起作用了:

<?php   
class Api_IndexController extends Zend_Controller_Action
{
    public function indexAction() {
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
        echo "REST API - Hello World";
    }

}
 ?>
<?php   
class Api_ProjectController extends Zend_Controller_Action
{
    public function indexAction() {
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
        echo "SSP REST API - Project Controller";
    }   
}
?>

模块似乎正在尝试路由到正确的控制器/操作,但Zend无法在项目树中找到控制器。有什么想法吗?

奇怪,如果索引控制器加载时没有任何错误,那么任何其他控制器也应该加载,尝试更改索引控制器的名称并检查

尽量确保application.ini中遵循了这些原则

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =

// Default Application Resource Namespace
appnamespace = "YourPrefix"

resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "modulename"
resources.frontController.prefixDefaultModule = true
在应用程序中,需要以下类型的结构(刚刚在我的系统中测试)


问题是,这是一个现有的应用程序,而且是一个相当大的应用程序,因此我无法四处移动目录并为所有控制器预先添加前缀。您能否提供错误的
异常信息
堆栈跟踪:
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules[] =

// Default Application Resource Namespace
appnamespace = "YourPrefix"

resources.frontController.defaultController = "index"
resources.frontController.defaultAction = "index"
resources.frontController.defaultModule = "modulename"
resources.frontController.prefixDefaultModule = true
    ├───configs
    ├───forms
    ├───layouts
    │   └───scripts
    └───modules
        ├───App
        │   ├───controllers
        │   ├───models
        │   │   └───DbTable
        │   └───views
        │       ├───helpers
        │       └───scripts
        │           
        └───default
            ├───controllers
            ├───models
            │   └───DbTable
            └───views
                ├───helpers
                └───scripts