如何理解php的依賴注入

2021-09-08 13:41:07 字數 1049 閱讀 4169

之前寫過關於php依賴注入的文章。。最近發現有的朋友對這個還是理解模糊,在這裡我想寫個簡單的例項幫助朋友們理解下。。。

傳統的思路是應用程式用到乙個a類,就會建立a類並呼叫a類的方法,假如這個方法內需要乙個b類,就會建立b類並呼叫b類的方法,而這個方法內需要乙個c類,就會建立c類,接著做些其它工作。

<?php

classc}

classb}

classa}

$class = new

a();

$class->dosomething(); //

c::dosomething我是c類|b::dosomething我是b類|a::dosomething我是a類|

使用依賴注入的思路是應用程式用到a類,a類需要b類,b類需要c類,那麼先建立c類,再建立b類並把c注入,再建立a類,並把b類注入,再呼叫a方法,a呼叫b方法,接著做些其它工作。

<?php

classc}

class

b

public

function

dosomething()

}class

a

public

function

dosomething()

}$class = new a(new b(new

c()));

$class->dosomething(); //

c::dosomething我是c類|b::dosomething我是b類|a::dosomething我是a類|

這就是控制反轉模式。依賴關係的控制反轉到呼叫鏈的起點。這樣你可以完全控制依賴關係,通過調整不同的注入物件,來控制程式的行為。例如a類用到了memcache,可以在不修改a類**的情況下,改用redis。

使用依賴注入容器後的思路是應用程式需要到a類,就從容器內取得a類,容器建立c類,再建立b類並把c注入,再建立a類,並把b注入,應用程式呼叫a方法,a呼叫b方法,接著做些其它工作.

總之容器負責例項化,注入依賴,處理依賴關係等工作。其實依賴注入不難理解哦。

如何理解php的依賴注入

之前寫過關於php依賴注入的文章。最近發現有的朋友對這個還是理解模糊,在這裡我想寫個簡單的例項幫助朋友們理解下。傳統的思路是應用程式用到乙個a類,就會建立a類並呼叫a類的方法,假如這個方法內需要乙個b類,就會建立b類並呼叫b類的方法,而這個方法內需要乙個c類,就會建立c類,接著做些其它工作。clas...

理解php的依賴注入

用來減少 之間的耦合 有效分離物件和它所需的外部資源 示例現有person類和car類這兩個類 person類 namespace di class person car類 namespace di class car index呼叫person類的buy方法 public function per...

PHP如何實現依賴注入

摘要 控制反轉 inversion of control,英文縮寫為ioc 是框架的重要特徵。控制反轉 ioc 是一種思想,依賴注入 di 是實施這種思想的方法。高層模組不應該依賴於底層模組,兩個都應該依賴抽象。抽象不應該依賴於細節,細節應該依賴於抽象。首先,我們來看一段 class a class...