首先发生的事情是:init还是preDispatch?

jbl*_*lue 3 php zend-framework

我正在阅读这里的问题答案,措辞有点令人困惑.我缩短了句子,专注于我的问题

  • 首先为Zend_Controller_Plugin_Abstract的实例调用preDispatch()...
  • 接下来调用Zend_Controller_Action的init()...
  • 这里调用控制器的preDispatch()方法......

这是否意味着在控制器本身,init代码首先在preDispatch代码之前运行?

有一个preDispatch首先运行但它不是控制器代码,只是对于任何外部插件中可能存在的代码,对吗?

Jur*_*man 10

实际上,init在preDispatch之前运行.在此图中可视化完整的事件流:

对我来说,了解完整的Zend Framework前端控制器结构非常有用.


Jak*_*e N 6

init之前运行preDispatch,init是初始化的缩写(如果你是美国人,则初始化).

因此,它首先会在Controller中初始化您可能需要的任何内容