2010-09-18 46 views
3

我在讀answer to the question here,措辭有點混亂。我縮短句子把重點放在我的問題哪個先發生:init或preDispatch?

  • 首先preDispatch()方法被調用 Zend_Controller_Plugin_Abstract的全部情況...
  • 的init()將依靠Zend_Controller_Action的下簡稱...
  • 的控制器的preDispatch()方法的方法在這裏稱爲...

這是否意味着,在控制器本身init代碼在preDispatch代碼之前先運行?

有一個preDispatch首先運行,但它不適用於控制器代碼,僅適用於任何外部插件中可能存在的代碼,是否正確?

回答

6

initpreDispatch之前運行,init是初始化(或初始化,如果你是美國人)的簡稱。

所以先運行並初始化任何你以後可能需要在控制器

10

事實上,在init preDispatch之前運行。在此圖中可以看到完整的事件流程:

對我來說,理解完整的Zend Framework前端控制器結構非常有用。

1

只需添加一個init()方法來自己的動作助手,其中掛鉤到您的控制器init(),您可以在init()preDispatch()利用兩種方式。

相關問題