2010-03-30 38 views
1

我註冊2插件在我的項目上Zend框架 中的application.ini 第一個,這是變革的佈局 resources.frontController.plugins.LayoutSet =「App_Plugins_LayoutSet」 和第二在引導的registred什麼插件首先在zend框架上執行?

$fc= Zend_Controller_Front::getInstance(); 
      $fc->registerPlugin(new App_Plugins_AccessCheck($this->_acl)); 

2插件工作正常,我想知道什麼插件首先執行, 我們可以改變這些插件的執行嗎?

回答

7

插件按照它們註冊的順序觸發。您可以通過在註冊插件時傳遞「堆棧索引」來覆蓋此行爲。

二OO方式:

$front->registerPlugin(new FooPlugin(), 1); // will trigger early 
$front->registerPlugin(new BarPlugin(), 100); // will trigger late 

的方式的application.ini:

resources.frontController.plugins.foo.class = "FooPlugin" 
resources.frontController.plugins.foo.stackIndex = 1  // will trigger early 
resources.frontController.plugins.bar.class = "BarPlugin" 
resources.frontController.plugins.bar.stackIndex = 100 // will trigger late 

Source: Zend Controller Plugins in ZF