我需要在加载路由之前获取插件。我在插件中使用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
的方法。
答案 0 :(得分:1)
最早的前端控制器插件事件是routeStartup,因此如果您想在此之前执行某些操作,则需要在Bootstrap中执行此操作。
不幸的是,在引导期间运行的方法不会将Request和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...
}
}