我有两个模块:admin,默认。 每个都有一个bootstrap:
class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
{
function _initSmth()
{
echo 'admin';
die();
}
}
和默认值:
class Default_Bootstrap extends Zend_Application_Module_Bootstrap
{
function _initSmth()
{
echo 'default';
die();
}
}
如果我运行site.ru或site.ru/admin/,它将始终返回'admin'。 为什么使用admin bootstrap运行默认引导程序?
答案 0 :(得分:2)
是的,这就是Zend的工作方式。如果您将模块资源启用到您的应用程序配置(tipically application.ini)
resource.modules=
所有模块都在引导时自动引导。如果要根据请求路由到哪个模块来切换行为,可以使用控制器插件进行规划。
考虑到第一个知道哪个模块/控制器/动作是routeShutdown的钩子,但根据你需要做什么,你可以使用其他钩子。
这是一个例子
Plugin_Test extends Zend_Controller_Plugin_Abstract {
public function routeShutdown (Zend_Controller_Request_Abstract $request){
switch($request->getModuleName()) {
case 'default':
// do something
break;
case 'admin':
// do something else
}
}