Wir kannten das Problem schon früher. Wie löst PHP dieses Problem? Da es sich um yii2 handelt, verwenden wir yii2, um es kurz vorzustellen. Ich habe den Kerncode von yii2 integriert, um den Prozess der Abhängigkeitsinjektion in PHP zu erklären.
Studenten, die die yii2-Entwicklung verwendet haben, sind mit Yii::createObject vertraut. Es ist ein „Eintrag“ für die Abhängigkeitsinjektion.
//$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;
Natürlich yii2s createObject ist weit mehr als das. Ich habe es einfach nur geschrieben, um eine Möglichkeit für PHP zu veranschaulichen, „Abhängigkeitsinjektion“ zu implementieren. Natürlich ist es sehr einfach (es verfügt nicht über die grundlegendste fehlertolerante Funktion, und es verfügt nicht über alle Funktionen der Abhängigkeitsinjektion, wie z. B. Parameterverwaltung, kompatible Schließungen usw., diese werden deutlich, wenn wir uns die yii2-DI-Implementierung tatsächlich ansehen.
Das Obige ist der Inhalt von yii2 Essay (7) Abhängigkeitsinjektion – (2) Einfache Implementierung der PHP-Abhängigkeitsinjektion Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). !