タグ付きの投稿:INI

クイックスタートsymfonyはDI(依存性注入)のチュートリアル

によって 、土曜日2010年8月14日14:21

何か依存性注入 (DI)は?

依存性の注入は、ソフトウェアアプリケーション内で疎結合されたオブジェクトを可能にする技術です。 オブジェクトが別の機能へのアクセスを必要とする場合、一般的に、それは内部的に密結合のシステムにつながってインスタンス化される。 依存性注入を実装することによって、我々は( - IOC時にはまた制御の反転と呼ばれる)使用する準備ができて、必要なオブジェクトを注入する。 次の例をご覧ください。

  <?PHP
クラスの意思決定{
    パブリック関数のmakeDecision(配列$パラメータ){
         / /データベースのアダプタが必要です
         $ DP =新しいDecisionParameters();
         $がparameterScore = $ DP -> getScore($パラメータ);
         / * ... いくつかのより多くの意思決定ロジック...  * /
        リターン($> 50をparameterScore);
     }
 } 

コードのこの部分は、しっかりとDecisionParametersのオブジェクトに結合されるように言われています。 疎結合な方法で上記の書き換え我々は次のようなものがあるんだけど...。

  <?PHP
クラスの意思決定{
    プライベート$ _dp。
    パブリック関数__construct($ DP){
        の$ this -> _dp = $ DP;
     }
    パブリック関数のmakeDecision(配列$パラメータ){
         $がparameterScore =の$ this -> _dp -> getScore($パラメータ);
         / * ... いくつかのより多くの意思決定ロジック...  * /
        リターン($> 50をparameterScore);
     }
 } 

我々はたびに、オブジェクトが、我々はまたその依存関係をインスタンス化しすぎでこれらを渡す必要があるインスタンス化されているような複雑さを追加している疎結合コードの利点を得るおいた。 たとえば、この:

  $選択=新しい意思決定者();
エコー$選択肢 - > makeDecision(配列('努力'=>'低'、'リターン'=>'高')); 

次のようになります:

  $ DP =新しいDecisionParameters();
選択=新しい意思決定者($ DP)$;
エコー$選択肢 - > makeDecision(配列('努力'=>'低'、'リターン'=>'高')); 

クラスの依存関係の数が増加するにつれ、このような状況がより苦痛になる、との依存関係自体が依存関係を持っている場合はどうでしょうか。 これは非常に迅速に、オブジェクトの管理の悪夢になることができます! 依存性注入コンテナ(またはフレームワーク)を入力してください...
読書"クイックスタートsymfonyはDI(依存性注入)のチュートリアル"を続ける»

カスタムコントローラ/アクションのsitemap.xmlにするための要求をルーティング

によって 、2010 0:13午前水曜日1月6日

/のための直接的な要求をするためにはsitemap.xmlにあなたのカスタムコントローラとアクションにZend Frameworkのアプリケーションは、単にあなたにapplication.iniまたは代替の設定ファイル(例:私の使用navigation.ini)に以下を追加します。

 resources.router.routes.sitemap.route ="sitemap.xmlに"
 resources.router.routes.sitemap.defaults.controller =インデックス
 resources.router.routes.sitemap.defaults.action =サイトマップ

出力するためのサンプルコードは、適切なコントローラ(私のサイトがインデックスコントローラ、サイトマップのアクションにあるなど)でアクションを作成して見ることができます。

 < PHP
クラスからindexController
     Zend_Controller_Actionを拡張し
 {
     / **
      * Zend_Navigationの設定に基づいてマップをレンダリング
      * /
    パブリック関数のsitemapAction()
     {
    	エコーで$ this ->ビュー>ナビゲーション() - >サイトマップ();
    	 $この - >表示 - >レイアウト() - > disableLayout();
    	の$ this -> _helper -> ViewRendererは - > setNoRender(真の);
     }
 }

サイトマップを迅速かつ容易に使用して生成することができますZend_Navigationを 、偉大な簡単なチュートリアルでは、(そしてZend Frameworkのチュートリアルのための一般的に非常に有用な)れているZendはキャスト - 動的メニューサイトマップとパンくずリストを作成













パノラマのテーマ別 Themocracy

9訪問者今オンライン
5名様、4ボット、0メンバー
最大の訪問者今日:06:15午前UTCで22
今月:24-08-2011 5時40分で23 UTC午前
今年:28-03-2011 22:40 UTCで130
すべての時間:28-03-2011 22:40 UTCで130