日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:52000
  • 待審:37
  • 小程序:12
  • 文章:1037587
  • 會員:756

目錄
    什么是 DI / 依賴注入
    依賴注入出現(xiàn)的原因
    簡單的依賴注入
    高階的依賴注入
    依賴注入的應用
    依賴注入高階優(yōu)化

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    什么是 DI / 依賴注入

    依賴注入DI 其實本質(zhì)上是指對類的依賴通過構造器完成 自動注入

    通俗來說,就是你當前操作一個類,但是這個類的某些方法或者功能不是單單只靠這個類就能完成的,而是要 借助另一個類 的才能完成的

    最直接的標志就是傳參數(shù)據(jù)為對象的時候。嚴格來說,你想在一個類中操作另一個類,這兩個類之間形成了相互依賴關系,傳參的方式叫 注入

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    依賴注入出現(xiàn)的原因

    在未使用依賴注入的時候,PHP 需要在一個類中使用另一個類的時候,往往都會進行如下操作

    比如我在 container 類中需要用到 adapter 類,就需要在使用之前進行實例化

    如果需要用到大量的外部類,這就會造成了 耦合度太高,很容易造成后期的 維護困難

    通俗的來講,也就是 container 脫離不了外部類去工作,這就叫 耦合度太高

    <?php
    class container
    {
    private $adapter;
    
    public function __construct()
    {
    $this->adapter = new adapter();
    }
    }
    

    登錄后復制

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    簡單的依賴注入

    上面的代碼耦合度太高,導致了 依賴注入 的出現(xiàn),主要是為了 解耦合

    如下案例,我們只需要將所需要操作的類對象傳入即可

    依賴注入 操作的參數(shù)是 對象,而不是普通參數(shù),是不是有更好的理解了

    但是這樣的簡單依賴注入,會造成如果你依賴的類很多,你傳參的時候會很長,容易混亂

    <?php
    class container
    {
    private $adapter;
    
    public function __construct(adapter $adapter)
    {
    $this->adapter = $adapter;
    }
    }
    

    登錄后復制

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    高階的依賴注入

    為了解決上面 參數(shù)混亂 的問題,這時候,依賴注入進行了優(yōu)化

    通過魔術方法,__get 去設置對象

    這時候,我們就可以解決依賴太多,參數(shù)混亂的問題了

    <?php
    class container
    {
    public $instance = [];
    
    public function __set($name, $value)
    {
    $this->instance[$name] = $value;
    }
    }
    
    $container = new container();
    
    $container->adapter = new adapter();
    $container->autofelix = new autofelix();
    

    登錄后復制

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    依賴注入的應用

    我們先定義一個 容器類,主要用來向容器中 注入 你想要操作的類

    使用的時候,只需要傳容器這一個 對象 即可

    <?php
    class container
    {
    public $instance = [];
    
    public function __set($name, $value)
    {
    $this->instance[$name] = $value;
    }
    }
    
    class adapter
    {
    public $name = '我是調(diào)度器';
    }
    
    $container = new container();
    $container->adapter = new adapter();
    
    class autofelix
    {
    private $container;
    
    public function __construct(container $container)
    {
    $this->container = $container;
    }
    
    public function who($class)
    {
    return $this->container->instance[$class]->name;
    }
    }
    
    $autofelix = new autofelix($container);
    
    $who = $autofelix->who('adapter');
    
    var_dump($who); //我是調(diào)度器
    

    登錄后復制

    php小編百草帶您深入探討PHP中的依賴注入(DI)依賴注入是一種軟件設計模式,有助于提高代碼的靈活性和可維護性。本文將詳細介紹DI的概念、原理和在PHP中的實際應用,幫助您更好地理解和運用依賴注入技術。

    依賴注入高階優(yōu)化

    在上面的應用中,我們 直接 將實例化后的對象注入容器中

    這樣會導致,所有的對象還沒有被使用就會被實例化一遍,造成 資源的損耗

    我們可以 傳入閉包,這樣對象就不會被實例化而注入,當你自己需要使用的時候,再去實例化,就可以減少 服務器資源的損耗 了

    <?php
    $container = new container();
    $container->adapter = new adapter();
    
    //高階優(yōu)化
    $container = new container();
    $container->adapter = function () {
    return new adapter();
    };
    

    登錄后復制

分享到:
標簽:DI PHP 一文 依賴 注入
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 52000

    網(wǎng)站

  • 12

    小程序

  • 1037587

    文章

  • 756

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定