如何更改默认模块的目录。我正在使用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;
}
答案 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"
您的文件夹结构正常