Zend框架的每個模塊的基礎設置
我創建了一個後續到這個職位需要更少的配置,請參閱模塊佈局- Zend框架 。
當使用Zend框架的模塊,其明顯的,如果你運行了相同的應用程序的不同(分)網站,你不一定要相同的佈局腳本,每個部分。 我決定去下面的網站結構:
/應用 /控制器 ... /型號 /模塊 /默認 /控制器 /佈局 /腳本 /人次 /腳本 / anotherModule ... /腳本
這個問題是每一個模塊的基礎上設立的佈局腳本。 答案是通過使用一個動作助手。 每一個模塊的基礎上設立的佈局,包括三個步驟:
- 的的application.ini(或類似的配置設置):
admin.resources.layout.layoutPath = APPLICATION_PATH“/模塊/管理/佈局/腳本” default.resources.layout.layoutPath = APPLICATION_PATH“/模塊/預設/佈局/腳本” member.resources.layout.layoutPath = APPLICATION_PATH“/模塊/會員/佈局/腳本” affiliate.resources.layout.layoutPath = APPLICATION_PATH“/模塊/子公司/佈局/腳本”
- 創建你的動作助手:
<?PHP / ** *每一個模塊的基礎上設置的佈局路徑 * * @作者:勞埃德·沃特金斯<lloyd@evilprofessor.co.uk> * @自2010-01-01 * / 類Pro_Controller_Action_Helper_SetLayoutPath 延伸Zend_Controller_Action_Helper_Abstract { / ** *集佈局路徑的基礎模塊 * / 公共職能preDispatch()在 { 模塊=> getRequest() - > getModuleName(); 如果(引導= $> getActionController() - > getInvokeArg('引導')){ $ CONFIG = $引導 - > getOptions(); (使用isset($配置[$模塊] ['資源'] ['佈局'] ['LayoutPath的'])){ 美元LayoutPath的= $配置[模塊] ['資源'] ['佈局'] ['LayoutPath的']; $> getActionController() - >中調用getHelper(“佈局”) - > setLayoutPath($ LayoutPath的); } } } }
- 最後自舉的動作助手:
... / ** *每一個模塊的基礎上設置佈局腳本 * / 保護功能_initLayoutHelper() { $本 - >引導(“frontController); 美元佈局Zend_Controller_Action_HelperBroker :: addHelper( 新Pro_Controller_Action_Helper_SetLayoutPath()); } ...

















































