2

我通過基於網址的路線定義合作伙伴,例如Zend MVC根據Url中的參數加載配置。正確的點調度/路由器/控制器在哪裏?

my.domain.com/:partner/:controller/:action 

現在我想調用前端控制器之前加載配置文件,數據庫的合作伙伴。

  • 我在哪裏找到這段代碼?
  • 如何獲取/設置變量/ db,以便他們在控制器中以後可用?

我知道我可以通過控制器幫手來做到這一點,但我想這不是最好的做法嗎?

回答

1

是的,controller plugin是我會做的方式:

class MyPlugin extends Zend_Controller_Plugin_Abstract 
{ 
    public function routeShutdown(Zend_Controller_Request_Abstract $request) 
    { 
     switch($request->getParam('partner')) { 
      //... do something based on the possibility 
     } 
    } 
} 
+0

請告訴我dispatchLoopStartup和preDispatch之間的區別? – Manuel

+0

http://devzone.zend.com/article/11978&http://devzone.zend.com/article/3372 這就是說,我剛剛重讀你的問題,這將發生在「fornt控制器被調用」之後。事實上,在「未命名的控制器被調用」之前,不可能做你想做的事情。b/c parram來自路由器,路由器來自前端控制器。我認爲你的意思是「在請求被分派之前」,在這種情況下,你可以使用的最早的分支是routeShutdown,再加上你知道這隻會在preDispatch發生多次時纔會發生。更新回答 – Fatmuemoo

+0

我只是把它放到preDispatch中,這對我來說完全正常。謝謝! – Manuel

相關問題