设置路由之前的Zend 1插件

时间:2015-02-19 11:02:28

标签: php zend-framework plugins base

我需要在加载路由之前获取插件。我在插件中使用routeStartuppreDispatch,但它没有帮助。

class Base_Controller_Plugin_Website extends Zend_Controller_Plugin_Abstract
{
    public function routeStartup(Zend_Controller_Request_Abstract $request)
    {
        Base_Website::setRequest($request);
    }
} 

我需要来自Base_Website的方法。

1 个答案:

答案 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...
    }
}