Zend_Controller_Plugin_Abstract, z której dziedziczy
każda klasa wtyczki:
routeStartup() jest wywoływana zanim
Zend_Controller_Front wywoła router w celu
sprawdzenia żądania pod kątem zarejestrowanych tras.
routeShutdown() jest wywoływana po tym
jak router
zakończy routing żądania.
dispatchLoopStartup() jest uruchamiana
zanim Zend_Controller_Front zacznie pętlę
uruchamiania.
preDispatch() jest wywoływana zanim
akcja zostanie uruchomiona przez
obiekt
uruchamiający. Pozwala to na stworzenie
funkcjonalności proxy lub filtra. Nadpisując żądanie i
resetując flagę uruchomienia (za pomocą
Zend_Controller_Request_Abstract::setDispatched(false)),
obecna akcja może być pominięta lub zastąpiona.
postDispatch() jest wywoływana po tym jak akcja
zostanie uruchomiona przez
obiekt
uruchamiający. Pozwala to na stworzenie
funkcjonalności proxy lub filtra. Nadpisując żądanie i
resetując flagę uruchomienia (za pomocą
Zend_Controller_Request_Abstract::setDispatched(false)),
można określić nową akcję do uruchomienia.
dispatchLoopShutdown() jest wywoływana
po tym jak Zend_Controller_Front zakończy
pętlę uruchamiania.
Zend_Controller_Plugin_Abstract:
Zend_Controller_Plugin_Abstract nie
jest abstrakcyjna, co oznacza, że nie jest konieczne implementowanie
wszystkich dostępnych metod zdarzeń opisanych powyżej. Autor wtyczki
może zaimplementować tylko te metody zdarzeń, które są mu
rzeczywiście potrzebne.
Zend_Controller_Plugin_Abstract udostępnia także
obiekty żądania i odpowiedzi wtyczkom kontrolera za pomocą metod
getRequest() oraz getResponse(), odpowiednio.
Zend_Controller_Front::registerPlugin() i mogą być
rejestrowane w dowolnym momencie. Poniższy kod pokazuje w jaki
sposób wtyczka może być użyta przez kontroler:
Wywołano metodę routeStartup()
\n"); } public function routeShutdown(Zend_Controller_Request_Abstract $request) { $this->getResponse()->appendBody("Wywołano metodę routeShutdown()
\n"); } public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $this->getResponse()->appendBody("Wywołano metodę dispatchLoopStartup()
\n"); } public function preDispatch(Zend_Controller_Request_Abstract $request) { $this->getResponse()->appendBody("Wywołano metodę preDispatch()
\n"); } public function postDispatch(Zend_Controller_Request_Abstract $request) { $this->getResponse()->appendBody("Wywołano metodę postDispatch()
\n"); } public function dispatchLoopShutdown() { $this->getResponse()->appendBody("Wywołano metodę dispatchLoopShutdown()
\n"); } } $front = Zend_Controller_Front::getInstance(); $front->setControllerDirectory('/path/to/controllers') ->setRouter(new Zend_Controller_Router_Rewrite()) ->registerPlugin(new MyPlugin()); $front->dispatch(); ]]>Wywołano metodę routeShutdown()
Wywołano metodę dispatchLoopStartup()
Wywołano metodę preDispatch()
Wywołano metodę postDispatch()
Wywołano metodę dispatchLoopShutdown()
]]>