Zend框架的每個模塊的設置

史蒂芬勞埃德沃特金斯 ,星期五2010年1月1日下午十時四十

我創建了一個後續這一職位的要求較少的配置,請參閱模塊的佈局- Zend框架

當使用Zend框架的模塊,其明顯的,如果你運行的各個(分)網站關閉同一個應用程序,你不一定需要同樣的佈局腳本的每個部分。 我決定去以下網站結構:

  /應用
     /控制器
         ...
     /模型
     /模塊
         /默認
             /控制器
             /佈局
                 /腳本
             /意見
                 /腳本
         / anotherModule
             ...
     /腳本

這個問題在設置佈局腳本對每個模塊的基礎。 這句話通過使用一個動作助手。 設置佈局上每個模塊的基礎包括三個步驟:

  1. 的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“/模組 /附屬 /佈局 /腳本” 
  2. 創建你的動作助手:
      <?PHP的
     / **
      *設置佈局路徑上的每個模塊的基礎上
      *
      * @作者勞埃德沃特<lloyd@evilprofessor.co.uk>
      * @自2010年1月1日
      * /
    類 Pro_Controller_Action_Helper_SetLayoutPath
        延伸Zend_Controller_Action_Helper_Abstract
     {
         / **
          *設置佈局的基礎上的模塊路徑
          * /
        公共職能 preDispatch()在
         {
        	這個模塊 = $ $ -> getRequest() - >“getModuleName();
    
    	    如果($引導 = $此-> getActionController()
    	                        - >“getInvokeArg('引導')){
    
    	         = $ $配置引導 -> getOptions();
    
    	        如果(使用isset($配置[$模塊] ['資源'] ['佈局'] ['layoutPath'])){
    	             = $ layoutPath
    	                 配置$ [$模塊] ['資源'] ['佈局'] ['layoutPath'];
    	             $這個 -> getActionController()
    	                  - >“getHelper('佈局')
    	                  - >“setLayoutPath($ layoutPath);
    	         }
        	 }
         }
     } 
  3. 最後自舉的動作助手:
     ...  / ** *設置了佈局腳本對每個模塊的基礎上* /保護功能_initLayoutHelper(){$這個 ->引導('frontController'); $佈局 = Zend_Controller_Action_HelperBroker::addHelper(新Pro_Controller_Action_Helper_SetLayoutPath());} .. 。 

4回應“Zen​​d框架的每個模塊的設置”

  1. Behrang 說:

    您好首先感謝您的幫助教程,但告訴我在哪裡創建動作助手與巫婆的文件名?
    behrang

  2. 嗨Behrang,創建動作助手,找遍你喜歡的名字,我有我自己的'圖書館'命名空間'臨'。 你可以很容易地調用類的SetLayoutPath'並把它放在任何你喜歡,提供的代碼,你可以找到它所需的類擴展

  3. 沙市kanth 說:

    嗨,亞姆混淆設立特定的數據庫模塊設置 ...沒有任何人有一個想法?

  4. 我覺得這可能很容易地實現 usign上述模式。 首先,創建選項在您的INI文件以及文件的:

    moduleName.db.user =“
    moduleName.db.password =“
    moduleName2.db.user =“
    等等... ...

    然後,只需生成數據庫連接您認為合適的(Zend_Db的::工廠()或類似的)和它拿走藏在註冊表中或將其設置為默認的適配器,如果使用的Zend_Db_Table(的Zend_Db_Table::setDefaultAdapter()來)。

給一個答复













全景主題 Themocracy

現在 9訪客在線
6位客人,3個機器人,0位會員
最大遊客今日:23日上午04時 19分聯合技術
本月:26日2011年7月5日上午12點 35分聯合技術
今年:130 28-03-2011下午10時 40聯合技術
所有時間:130 28-03-2011下午10時 40聯合技術