Zend Frameworkの単位のモジュールベースの設定

スティーブンロイドワトキン 2010年1月1日(金曜日)22:40

私は設定を以下の必要投稿するには、このてのフォローアップを作成し、参照してください- Zend Frameworkをレイアウトモジュールベース

使用する場合はZend Frameworkを様々な場合は、している実行していることが明らかにとの、モジュール(サブ-)のサイトには、アプリケーションをオフと同じあなたが同じことをするとは限りませんレイアウトスクリプトを部分ごとに。 私は以下のサイト構造で行くことにした:

  /アプリケーション
     /コントローラ
         ...
     /モデル
     /モジュール
         /デフォルト
             /コントローラ
             /レイアウト
                 /スクリプト
             /ビュー
                 /スクリプト
         / anotherModule
             ...
     /スクリプト

問題は、モジュール単位でのレイアウトのスクリプトを設定した。 答えはアクションヘルパーを使用して流れてきた。 モジュール単位でのレイアウトを設定する3つの手順が含まれます:

  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()
         {
        	 $モジュール=します$ this ->のGetRequest() - > getModuleName();
    
    	     ($ブートストラップ=します$ this -> getActionController()が
    	                        - >のgetInvokeArg('ブートストラップ')){
    
    	        の$ config = $ブートストラップ-> GetOptions()の;
    
    	        場合(かどうかの判断(の$ config [$モジュール] ['リソース'] ['レイアウト'] ['layoutPath'])){
    	             $ layoutPathは=
    	                 の$ config [$モジュール] ['リソース'] ['レイアウト'] ['layoutPath'];
    	            の$ this -> getActionController()
    	                  - >のgetHelper('レイアウト')
    	                  - >のsetLayoutPath($ layoutPath);
    	         }
        	 }
         }
     } 
  3. そして最後にアクションヘルパーのブートストラップ:
      ...
         / **
          *は、モジュール単位でのレイアウトスクリプトを設定します
          * /
        保護された関数_initLayoutHelper()
    	 {
    	    の$ this ->ブートストラップは('frontController');
    	    します$ layout =しますZend_Controller_Action_HelperBroker::addHelper(
    	        新しいのPro_Controller_Action_Helper_SetLayoutPath());
    	 }
     ... 

"Zend Frameworkのモジュールごとにベースの設定"に4つ​​の応答

  1. Behrangの 言葉:

    のHi第一のおかげで、チュートリアル参考になったが、私は魔女ファイル名を指定してアクションヘルパーを作成する場所を教えて?
    behrang

  2. こんにちはBehrang、あなたは、私は、名前空間'プロ'で、自分自身'ライブラリ'が好きな方の名前を持つアクションヘルパーを作成します。 あなたは同じように簡単にクラスのSetLayoutPath'を呼び出すことができます、これまでは、あなたが好き、コードがそれを見つけることができます提供されるそれをどこに置いて、必要なクラスを拡張する

  3. て、Shashiのkanthの 言葉:

    こんにちは、モジュール固有のデータベースの設定を設定すると混同してIAMの...誰もが考えているのですか?

  4. 私はこれは簡単に上記のパターンをusign達成することができると思います。 まず、のファイルに沿ってiniファイルにオプションを作成する:

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

    あなたがふさわしいのようにして、単にあなたのデータベース接続を生成する(はZend_Db::factory()でまたは類似の)レジストリで、それを隠すかのZend_Db_Tableを使用して、デフォルトアダプタかのように設定します(Zend_Db_Tableは::setDefaultAdapter()を使用します)。

返信コメントを残す













パノラマテーマ別 Themocracy

6人オンライン中
2名様、4ボット、0人のメンバー
今日の最大の訪問者は:14 12:34 UTCに午前
今月:22 2011年8月6日12時半は、UTCの午前
今年:130 28-03-2011 22:40 UTCに
すべての時間:130 28-03-2011 22:40 UTCに