Мне нужно получить плагин перед маршрутами загрузки. Я использую routeStartup
и preDispatch
в плагине, но это не помогает.
class Base_Controller_Plugin_Website extends Zend_Controller_Plugin_Abstract
{
public function routeStartup(Zend_Controller_Request_Abstract $request)
{
Base_Website::setRequest($request);
}
}
Мне нужен метод из Base_Website
.
Самое раннее событие плагина front-controller - routeStartup, поэтому, если вы хотите выполнить какое-либо действие до этого, вам нужно сделать это в Bootstrap.
К сожалению, методы, выполняемые во время загрузки, не передают вам объекты Request and Response. Вам придется выкапывать их самостоятельно. Что-то вроде:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
// all your other _initXXX() bootstrap methods
// etc...
protected function _initSomethingUsingRequest()
{
$this->bootstrap('frontController');
$front = $this->getResource('frontController');
$request = $front->getRequest();
// Now do whatever you want with your Request object
// etc...
}
}
routeStartup
может понадобиться перейти вBootstrap
.