Maison >développement back-end >tutoriel php >yii2 Essai (7) Injection de dépendances - (2) Implémentation simple de l'injection de dépendances PHP

yii2 Essai (7) Injection de dépendances - (2) Implémentation simple de l'injection de dépendances PHP

黄舟
黄舟original
2017-01-17 10:33:491340parcourir

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). !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn