Zend Frameworkの単位のモジュールベースの設定
私は設定を以下の必要投稿するには、このてのフォローアップを作成し、参照してください- Zend Frameworkをレイアウトモジュールベース 。
使用する場合はZend Frameworkを様々な場合は、している実行していることが明らかにとの、モジュール(サブ-)のサイトには、アプリケーションをオフと同じあなたが同じことをするとは限りませんレイアウトスクリプトを部分ごとに。 私は以下のサイト構造で行くことにした:
/アプリケーション /コントローラ ... /モデル /モジュール /デフォルト /コントローラ /レイアウト /スクリプト /ビュー /スクリプト / anotherModule ... /スクリプト
問題は、モジュール単位でのレイアウトのスクリプトを設定した。 答えはアクションヘルパーを使用して流れてきた。 モジュール単位でのレイアウトを設定する3つの手順が含まれます:
- 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年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); } } } }
- そして最後にアクションヘルパーのブートストラップ:
... / ** *は、モジュール単位でのレイアウトスクリプトを設定します * / 保護された関数_initLayoutHelper() { の$ this ->ブートストラップは('frontController'); します$ layout =しますZend_Controller_Action_HelperBroker::addHelper( 新しいのPro_Controller_Action_Helper_SetLayoutPath()); } ...


















































のHi第一のおかげで、チュートリアル参考になったが、私は魔女ファイル名を指定してアクションヘルパーを作成する場所を教えて?
behrang
こんにちはBehrang、あなたは、私は、名前空間'プロ'で、自分自身'ライブラリ'が好きな方の名前を持つアクションヘルパーを作成します。 あなたは同じように簡単にクラスのSetLayoutPath'を呼び出すことができます、これまでは、あなたが好き、コードがそれを見つけることができます提供されるそれをどこに置いて、必要なクラスを拡張する
こんにちは、モジュール固有のデータベースの設定を設定すると混同してIAMの...誰もが考えているのですか?
私はこれは簡単に上記のパターンをusign達成することができると思います。 まず、のファイルに沿ってiniファイルにオプションを作成する:
moduleName.db.user ="
moduleName.db.password ="
moduleName2.db.user ="
...等...
あなたがふさわしいのようにして、単にあなたのデータベース接続を生成する(はZend_Db::factory()でまたは類似の)レジストリで、それを隠すかのZend_Db_Tableを使用して、デフォルトアダプタかのように設定します(Zend_Db_Tableは::setDefaultAdapter()を使用します)。