我正在阅读answer to the question here并且措辞有点令人困惑。我缩短了句子,专注于我的问题
- 为实例调用第一个preDispatch() Zend_Controller_Plugin_Abstract ...
接下来调用Zend_Controller_Action的- init()...
- 此处调用控制器的preDispatch()方法......
这是否意味着在控制器本身中,init
代码首先在preDispatch
代码之前运行?
有一个preDispatch首先运行,但不是控制器代码,只是对于任何外部插件中可能存在的代码,是否正确?
答案 0 :(得分:10)
确实,init在preDispatch之前运行。在此图中可以看到完整的事件流:
对我而言,了解完整的Zend Framework前端控制器结构非常有用。
答案 1 :(得分:6)
init
在preDispatch
之前运行,init
是初始化的缩写(如果您是美国人,则初始化)。
因此,它首先运行初始化以后在Controller中可能需要的任何内容
答案 2 :(得分:1)
只需将init()
方法添加到您自己的操作帮助程序中,该帮助程序会挂钩到您的控制器init()
,无论哪种方式,您都可以使用init()
之前的preDispatch()
。