2011-06-10 25 views
0

我有兩個模塊:admin,default。 每個人都有一個自舉:所有模塊自舉總是在一個請求上運行

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引導運行?

+0

是否檢查site.ru實際上並沒有使用管理模塊?檢查請求對象並查看它開始使用的模塊/控制器/操作。 – Niklas 2011-06-10 14:38:26

+0

是的,我做過。它的默認索引控制器在$ this-> getRequest() - > getModuleName()上返回'default'。並且管理員索引控制器返回'admin'。 – Anthony 2011-06-10 14:54:41

回答

2

是的,這是Zend的工作方式。如果您啓用模塊資源到您的應用程序配置(最終application.ini)

resource.modules= 

所有模塊在引導時自引導。如果您想根據請求被路由到哪個模塊來切換行爲,您可以使用控制器插件進行規劃。

考慮到第一個hook知道哪個模塊/控制器/動作是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 
    } 

} 
相關問題