在插件控制器中没有调用Zend preDispatch函数

时间:2013-12-11 10:21:40

标签: php zend-framework

我有第一个Bootstrap.php调用插件控制器,谁(插件)调用另一个Bootstrap。在第二个Bootstrap中,我调用另一个插件控制器,但preDispatch()函数未被调用...

这条道路:
Bootstrap => Plugin (preDispatch) => Bootstrap (another) => Plugin (preDispatch not called)

我想,这是因为preDispatch总是在第一个插件控制器中调用。

所以,我的解决方案是在第一个Bootstrap中加载我的所有插件,但我不喜欢它...
你有其他想法吗?

编辑:某人?

1 个答案:

答案 0 :(得分:0)

这个设置的问题是,当您从第二个引导程序文件注册插件时,Zend_Controller_Front已经在所有已注册的插件上调用了此方法,并且在此事件之后注册的任何内容将永远不会收到此事件电话。

为了更好地掌握这个概念,请尝试在Zend_Controller_Front中查看~900-920行。这是创建事件的地方,并且由于只能有1个前端控制器,因此该代码永远不会运行两次。