更改默认模块的目录

时间:2012-01-31 11:07:48

标签: php zend-framework

如何更改默认模块的目录。我正在使用Zend Framework模块化目录结构:

modules
    default
        controllers
            IndexController.php
        etc
    other-module

但是如何更改默认模块的目录?我希望它被称为Api。所以我会:

modules
    Api
        controllers
            IndexController.php
    other-module

我希望URI保持不变,所以:

http://localhost

将路由到modules / Api / controllers / IndexController.php并运行indexAction。

这就是我在bootstrap中所拥有的

protected function _initFrontController()
{
    $front = Zend_Controller_Front::getInstance();
    $front->addModuleDirectory(APPLICATION_PATH.'/modules');
    return $front;
}

2 个答案:

答案 0 :(得分:4)

application/config.ini

# where to find modules
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"

# set the default module
resources.frontController.defaultModule = "api"

# which modules to activate
resources.modules.api   = "api"
resources.moduler.other = "other"

然后,您可以从_initFrontController()删除Bootstrap方法。

请注意这里的字符大小写。通常,模块名称(在配置文件和路由中引用)是小写的。此外,模块的文件名将为小写(例如:application/modules/api)。特定于模块的类名(例如,管理模块中的控制器)将模块名称的第一个字符大写为类前缀(例如:class Admin_ArticleController extends Zend_Controller_Action)。

[对于带连字符和camelCase模块的名称 - 就像你的'其他模块'的例子 - 我忘记了模块特定的类应该如何作为前缀,但是如果你真的需要它就很容易追逐。]

答案 1 :(得分:1)

在你的config.ini

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

您的文件夹结构正常