亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP依賴注入的案例

發布時間:2020-10-28 21:39:26 來源:億速云 閱讀:140 作者:小新 欄目:編程語言

PHP依賴注入的案例?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

依賴注入

傳統的思路

應用程序用到一個Foo類,就會創建Foo類并調用Foo類的方法。
假如這個方法內需要一個Bar類,就會創建Bar類并調用Bar類的方法。
而這個方法內需要一個Bim類,就會創建Bim類,接著做些其它工作。

/**
*  Foo
*/
class Foo 
{

    public function doSomething($value='')
    {
        # code...
        $Bar = new Bar();
        $Bar->doSomething();
        echo 'Foo doSomething','<br />' ;
    }
}

/**
*  Bar
*/
class Bar 
{
    

    public function doSomething($value='')
    {
        # code...
        $Bim = new Bim();
        $Bim->doSomething();
        echo 'Bar doSomething','<br />' ;
    }
}

/**
* Bim
*/
class Bim
{
    

    public function doSomething($value='')
    {
        # code...
        echo 'Bim doSomething','<br />'  ;
    }
}

$doSomething = new Foo();
$doSomething->doSomething();

依賴注入

應用程序用到Foo類,Foo類需要Bar類,
 Bar類需要Bim類,那么先創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar類注入,
 再調用Foo方法,Foo調用Bar方法,接著做些其它工作。

/**
* Bim2
*/
class Bim2 
{
    
    public function doSomething($value='')
    {
        # code...
        echo 'Bim2 doSomething','<br />' ;
    }

}

/**
*  Bar2
*/
class Bar2
{

    private $bim2 ;

    public function __construct(Bim2 $bim2)
    {
        # code...
        $this->bim2 = $bim2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bim2->doSomething();
        echo "Bar2 doSomething",'<br />';
    }
}

/**
* Foo
*/
class Foo2
{
    
    private $bar2 ;
    public function __construct(Bar2 $bar2)
    {
        # code...
        $this->bar2 = $bar2 ;
    }

    public function doSomething($value='')
    {
        # code...
        $this->bar2->doSomething();
        echo "Foo2 doSomething",'<br />';
    }
}

$doSomething2 = new Foo2(new Bar2(new Bim2()));
$doSomething2->doSomething();

這就是控制反轉模式。依賴關系的控制反轉到調用鏈的起點。這樣你可以完全控制依賴關系,通過調整不同的注入對象,來控制程序的行為。
例如Foo類用到了memcache,可以在不修改Foo類代碼的情況下,改用redis
使用依賴注入容器后的思路是應用程序需要到Foo類,就從容器內取得Foo類,容器創建Bim類,再創建Bar類并把Bim注入,再創建Foo類,并把Bar注入,應用程序調用Foo方法,Foo調用Bar方法,接著做些其它工作.

擴展:容器負責實例化,注入依賴,處理依賴關系等工作。

感謝各位的閱讀!看完上述內容,你們對PHP依賴注入的案例大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

遂川县| 林周县| 西充县| 冀州市| 岱山县| 易门县| 长子县| 原平市| 洛宁县| 阳高县| 枣阳市| 堆龙德庆县| 东乡县| 内江市| 宜州市| 新竹县| 新营市| 同心县| 巩留县| 望城县| 哈巴河县| 奉新县| 商丘市| 盐池县| 连山| 万全县| 肇东市| 津南区| 信宜市| 柳州市| 闵行区| 定西市| 临江市| 广汉市| 和政县| 英山县| 林芝县| 土默特右旗| 大方县| 涞水县| 灵石县|