【问题标题】:Which happens first: init or preDispatch?哪个先发生:init 还是 preDispatch?
【发布时间】:2010-09-18 19:25:11
【问题描述】:

我正在阅读answer to the question here,措辞有点混乱。我缩短了句子以专注于我的问题

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

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

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

【问题讨论】:

    标签: php zend-framework


    【解决方案1】:

    确实,init 在 preDispatch 之前运行。此图中显示了完整的事件流:

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

    【讨论】:

      【解决方案2】:

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

      所以它首先运行来初始化你稍后在控制器中可能需要的任何东西

      【讨论】:

        【解决方案3】:

        只需将init() 方法添加到您自己的操作助手中,该方法会挂接到您的控制器init(),无论哪种方式,您都可以在preDispatch() 之前使用init()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-01-22
          • 1970-01-01
          相关资源
          最近更新 更多