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

时间:2013-12-19 17:52:46

标签: php zend-framework

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

项目布局如下:

application
  -controllers
  -models
  -modules
    -api
      -controllers
      -models
      -views
      -Bootstrap.php
  -views

我已将以下几行添加到application.ini

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

我还将这个空的Bootstrap类添加到/modules/api/

<?php
class Api_Boostrap extends Zend_Application_Module_Bootstrap {
}

?>

/modules/api/controllers我创建了IndexController.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";
    }

}
 ?>

当我导航到/api/index时,这会有效,但是当我尝试在与上述ProjectController.php相同的目录中添加名为IndexController.php的新控制器时:

<?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";
    }   
}
?>

并尝试导航到我/api/project的{​​{1}}网址。

以下是Invalid controller specified (error)的请求参数:

/api/project

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

1 个答案:

答案 0 :(得分:0)

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

尝试确保在应用程序.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

在应用程序下面需要一种结构(仅在我的系统中测试)

    ├───configs
    ├───forms
    ├───layouts
    │   └───scripts
    └───modules
        ├───App
        │   ├───controllers
        │   ├───models
        │   │   └───DbTable
        │   └───views
        │       ├───helpers
        │       └───scripts
        │           
        └───default
            ├───controllers
            ├───models
            │   └───DbTable
            └───views
                ├───helpers
                └───scripts