在Zendframework 1中,我們使用init()
方法初始化控制器中的東西。我看到這是從zenframework 2中取出的。爲什麼?什麼是在zf 2中實現相同的事情的最好方法是什麼?我正在升級我之前在zf1中開發的項目,我可以看到zf2與zf1相比已經發生了很多變化。zf2控制器中的init方法
zf2中是否還有其他變化?他們使用其他方法如z123中的preDispatch()
和postDispatch()
?
有人經歷過這個嗎?
在Zendframework 1中,我們使用init()
方法初始化控制器中的東西。我看到這是從zenframework 2中取出的。爲什麼?什麼是在zf 2中實現相同的事情的最好方法是什麼?我正在升級我之前在zf1中開發的項目,我可以看到zf2與zf1相比已經發生了很多變化。zf2控制器中的init方法
zf2中是否還有其他變化?他們使用其他方法如z123中的preDispatch()
和postDispatch()
?
有人經歷過這個嗎?
在zf2控制器中,ControllerLoader是ServiceManager的子類。如果您需要初始化控制器,請使用工廠或__construct
。使用__construct
來簡化初始化,如果控制器消耗了需要注入的其他對象,則使用Factory。
preDispatch
和postDispatch
也不再支持新的事件系統。要在zf2中獲得相同的結果,請註冊disptach
和render
事件的事件處理程序。對於MVC envents的完整列表,請參閱http://akrabat.com/zend-framework-2/a-list-of-zf2-events/
而且,在這裏看一看,因爲我認爲你可以拖放到一個控制器,該建立控制器工廠ZF2 how to get entity Manager from outside of controller
由於OP提到postDispatch
,這是值得注意的是,__destruct
現在工作以類似的方式。然而,一個很大的區別是執行不能被阻止(例如通過exit;
)來終止對象的拆除。
除了akrabats事件的完整列表Matthew W.O'Phinney的博客http://mwop.net/blog/2012-07-30-the-new-init.html – Sam 2012-08-14 06:03:37
感謝山姆,這個鏈接是非常有幫助。 – Developer 2012-08-14 07:31:41