所有模块引导始终在一个请求上运行

时间:2011-06-10 14:32:50

标签: php zend-framework module bootstrapping

我有两个模块: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运行默认引导程序?

1 个答案:

答案 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
    }

}