快速啟動Symfony的DI(依賴注入)教程
什麼是依賴注入 (DI)?
依賴注入是一種技術,允許在松耦合對象軟件應用程序。 一般來說,如果一個對象需要訪問另一功能將被實例化內部導致緊耦合系統。 通過實施依賴注入我們注入所需的對象準備使用(有時也稱為控制反轉 - IOC)。 看看下面的例子:
<?PHP 類決策者 { 公共職能 makeDecision(數組 $參數){ / /需要的數據庫適配器 $ DP =新DecisionParameters(); $ parameterScore = $ DP -> getScore($參數); / * ... 一些更多的決策邏輯 ... * / 返回($ parameterScore> 50); } }
這一段代碼被認為是緊耦合的DecisionParameters對象。 重寫上面的一個鬆散耦合的方式,我們會碰到這樣的... ...。
<?PHP 類決策者 { 私人$ _dp; 公共函數 __construct($ DP){ $這個 - > _dp = $ DP; } 公共職能 makeDecision(數組 $參數){ $ parameterScore = $這個 - > _dp - > getScore($參數); / * ... 一些更多的決策邏輯 ... * / 返回($ parameterScore> 50); } }
雖然獲得的好處松耦合的代碼,我們正在增加複雜性,使得每一個對象實例化時,我們還必須實例化它的依賴,並通過這些中了。 例如,這樣:
$選擇 =新的決策者(); 迴聲 $選擇 - > makeDecision(陣列('努力'=>'低','回報'=>'高'));
現在變成了:
$ DP =新DecisionParameters(); $選擇 =新的決策者($ DP); 迴聲 $選擇 - > makeDecision(陣列('努力'=>'低','回報'=>'高'));
這種情況變得更加痛苦的數量依賴一類是增加了,如果自己有依賴關係的依賴關係? 這可能很快成為一個對象管理的惡夢! 輸入依賴注入容器(或框架)...
繼續閱讀“快速啟動Symfony的DI(依賴注入)教程”»
















































