2010-03-30 42 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