Nous connaissions le problème plus tôt, alors comment PHP résout-il ce problème ? Parce qu'il s'agit de yii2, nous utilisons yii2 pour le présenter brièvement. J'ai intégré le code principal de yii2 pour expliquer le processus d'injection de dépendances en PHP.
Les étudiants qui ont utilisé le développement yii2 connaissent Yii::createObject. C'est une "entrée" pour l'injection de dépendances. Je vais l'afficher et la modifier :
//$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;
Bien sûr. , createObject de yii2 est bien plus que cela. Je l'ai écrit simplement pour illustrer une manière pour PHP d'implémenter "l'injection de dépendances". n'a pas toutes les fonctionnalités de l'injection de dépendances, telles que la gestion des paramètres, les fermetures compatibles, etc., celles-ci apparaîtront lorsque nous examinerons réellement l'implémentation de yii2 DI).
Ce qui précède est le contenu de l'essai yii2 (7) Injection de dépendances - (2) Implémentation simple de l'injection de dépendances PHP Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn). !