ホームページ  >  記事  >  バックエンド開発  >  yii2 エッセイ (7) 依存性注入 - (2) PHP 依存性注入の簡単な実装

yii2 エッセイ (7) 依存性注入 - (2) PHP 依存性注入の簡単な実装

黄舟
黄舟オリジナル
2017-01-17 10:33:491299ブラウズ

この問題は以前からわかっていましたが、PHP はこの問題をどのように解決するのでしょうか? yii2 なので、yii2 を使って簡単に紹介します。PHP での依存関係注入のプロセスを説明するために、yii2 のコア コードを統合しました。

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 Essay (7) 依存性注入 - (2) PHP 依存性注入の簡単な実装の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。