какой плагин сначала выполняется на Zend Framework?

я зарегистрировал 2 плагина в своем проекте на zend framework, первый в application.ini, это для изменения макета resources.frontController.plugins.LayoutSet="App_Plugins_LayoutSet" и второй в зарегистрированном в начальной загрузке

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

2 плагина работают нормально, я хочу знать, какой плагин выполняется в первую очередь, можем ли мы изменить предшествующее выполнение для этих плагинов?


person ulduz114    schedule 30.03.2010    source источник


Ответы (2)


Плагины запускаются в том же порядке, в котором они зарегистрированы. Вы можете переопределить это поведение, передав «индекс стека» при регистрации плагинов.

ОО способ:

$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

Источник: подключаемые модули Zend Controller в ZF

person yenta    schedule 30.03.2010

Приведенный выше ответ верен лишь частично. Да, плагины запускаются в том же порядке, в котором они зарегистрированы, но также имеет значение, какой метод события использует плагин. Например, preDispatch() будет запущен до postDispatch() и так далее.

См. http://framework.zend.com/manual/en/zend.controller.plugins.html

person Richard Knop    schedule 31.03.2010