使用新模块目录指定的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