在Controller插件中不调用preDispatch()

时间:2011-03-29 16:54:36

标签: zend-framework

class My_Plugin extends Zend_Controller_Plugin_Abstract
{

    public function init()
    {
         print 'this is working just fine';
    }

    public function  preDispatch( Zend_Controller_Request_Abstract $request )
    {
        Zend_Debug::dump($request);
        print 'why is it not working';
        exit;
        die(':(');   // not dieing either     
    }
}

该插件在/configs/application.ini文件中注册。 ZF确实看到了它,因为init()函数运行得很好。但我在preDispatch中所做的一切似乎都没有效果。

P.S。此插件的唯一目的是确定URL中参数使用的语言,并将Zend_Locale设置为它。所以我不需要再次在任何控制器或视图中执行它,而是依赖于Zend_Locale,Zend_Translate等。但我不能在插件的init()中执行此操作而preDispatch()根本不起作用:/ ZF缺乏适当的文件开始让我发疯“

1 个答案:

答案 0 :(得分:4)

问题是我需要在application.ini上添加一行:

resources.frontController.plugins.myplugin = Plugins_My_Plugin 

现在一切正常。