2011-10-20 27 views
2

我注意到Zend Framework的bootstrap有一些有趣的地方。我創建了一個新的項目,然後用Zend框架中的佈局初始化特性

ZF使佈局

,使佈局引擎。它開箱即用,嗚!

但後來我嘗試在bootstrap中創建一個名爲_initLayout的函數來設置一些選項。有趣的是,這似乎再次禁用佈局,即使函數體實際上是空的。不會拋出任何錯誤,但佈局腳本不再使用(例外情況是,當我實際再次設置選項並手動調用Zend_Layout::startMvc()時)。

將函數重命名爲其他任何內容(如_initFoo)會使佈局再次起作用。

所以,我的問題是:這是一個功能名稱,它在某種程度上被Zend Framework識別並且額外的操作被應用到它,比如從application.ini取消佈局配置?是否有其他情況下,我應該避免引導程序中的某些_init*函數名稱?

回答

3

Bootstrap的主要目的是設置應用程序使用的資源。這些可以通過配置文件中的行(resources.resourcename.foo)或通過引導類中的方法(_initResourceName())設置。我假設zf enable layout已經添加了一些resources.layout.*行到application.ini。通過在引導中添加_initLayout方法,ZF將使用它來設置配置線的佈局資源,而不是

是否有其他情況下,我應該避免在引導程序中的某些_init *函數名稱?

資源插件在手冊中有詳細介紹:http://framework.zend.com/manual/en/zend.application.available-resources.html,_init<resourcename>()將始終覆蓋配置中的任何對應行。

+0

謝謝,這完全回答了我的問題:)。 – mingos