首頁  >  文章  >  後端開發  >  yii2 隨筆(七)依賴注入-(2)php依賴注入的簡單實現

yii2 隨筆(七)依賴注入-(2)php依賴注入的簡單實現

黄舟
黄舟原創
2017-01-17 10:33:491270瀏覽

前面我們知道了問題所在,那麼PHP是怎麼解決這個辦法的呢?因為是yii2,所以我們用yii2的方式簡單介紹一下,我把yii2的核心程式碼整合了一下,來說php實作依賴注入的過程。

在使用過yii2開發的同學,對Yii::createObject不陌生,他就是依賴注入的一個“入口”,我把它提出來改一下:

//$p 可以想象的yii2的配置文件,如$p = ['class'=>'sdk/Test', 'file'=>'xxxx'];
// 'class' 是将要实现的类,‘file’是将要实现的对象的属性
function createObject($p){
    $class = $p['class'];
    unset($p['class']);
    $obj = new $class;//require 使用的是 autoload 实现的
    foreach($p as $f => $v){
        $class->$f = $v;    
    }

    return $obj;

當然,yii2的createObject遠遠不止這些,我寫成這麼簡單只是為了說明php實現「依賴注入」的一種方式,當然它是非常簡陋的(它不具備最基本的容錯功能,而且不具備依賴注入的全部功能,比如參數管理、兼容閉包等,等我們真正看完yii2 DI實現的時候,這些都會浮現出來)。

以上就是yii2 隨筆(七)依賴注入-(2)php依賴注入的簡單實現的內容,更多相關內容請關注PHP中文網(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn