更改Zend Framework默认模块

时间:2012-01-27 14:31:01

标签: zend-framework zend-framework-modules

我正在开发一个项目并拥有以下项目布局:

|Project
    |-Application
        |-api
        |-configs
        |-controllers
        |-models
        |-modules
            |-core
                |-controllers
                |-models
                |-views
                |-Bootstrap.php
            |-site1
            |-site2
            |-site3
        |-views
        |-Bootstrap.php
    |-Docs
    |-Library
    |-Public
    |-.zfproject.xml

我在application.ini中使用过这个来尝试将default模块设置为core模块:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

resources.frontController.defaultModule = "core"
resources.frontController.defaultControllerName = "Index"
resources.frontController.defaultAction = "index"

resources.modules[] = ""

我的问题是,出于某种原因,我无法在模块中使用bootstraps。这几乎就像默认模块没有被改变一样。应用程序的行为就像它一样,直到我尝试加载bootstraps - 我收到此错误:

  

致命错误:未捕获的异常'Zend_Application_Resource_Exception'   消息'找到模块的Bootstrap文件“默认”但引导程序   “未找到”类“Default_Bootstrap”   M:\ Zend_Framework \ library \ Zend \ Application \ Resource \ Modules.php on   第85行

以此错误为前缀:

  

Zend_Application_Resource_Exception:为模块找到Bootstrap文件   “default”但找不到bootstrap类“Default_Bootstrap”   M:\ Zend_Framework \ library \ Zend \ Application \ Resource \ Modules.php on   第85行

谁能看到我出错的地方?

我的应用程序/ Bootstrap.php文件:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
}

我的应用程序/ Core / Bootstrap.php文件:

class Core_Bootstrap extends Zend_Application_Module_Bootstrap 
{   
}

2 个答案:

答案 0 :(得分:6)

不是100%,但如果您删除以下行:

resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"

可能会解决问题。如果我没有弄错,因为你正在使用模块,设置它会导致错误。

答案 1 :(得分:0)

您的应用程序看起来可能缺少一行.ini:

resources.frontController.params.prefixDefaultModule = ""

尝试以这种方式使用它并查看它是否有效,我认为这只是告诉应用程序在使用模块时,名为'default'的模块没有前缀。
虽然我可能错了所以你可能需要进行实验 好吧,也许有两行丢失了:)

resources.frontController.moduleControllerDirectoryName = "controllers"