какъв плъгин се изпълнява първо на zend framework?

регистрирах 2 плъгина в моя проект на zend framework, първият в application.ini, това е за промяна на оформлението resources.frontController.plugins.LayoutSet="App_Plugins_LayoutSet" и вторият в регистрирания в bootstrap

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

2 плъгин работят добре, искам да знам кой плъгин се изпълнява първо, можем ли да променим предишното изпълнение за тези плъгини?


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


Отговори (2)


Приставките се задействат в същия ред, в който са регистрирани. Можете да замените това поведение, като подадете „индекс на стека“ при регистриране на добавки.

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

Източник: Zend Controller Plugins в 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