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

黄舟
Libérer: 2023-03-04 21:16:01
original
1310 Les gens l'ont consulté

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;
Copier après la connexion

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


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal