Maison  >  Article  >  développement back-end  >  Comprendre l'injection de dépendances DI en PHP dans un article

Comprendre l'injection de dépendances DI en PHP dans un article

王林
王林avant
2024-04-03 13:46:04401parcourir

Comprendre linjection de dépendances DI en PHP dans un article

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

Qu'est-ce que l'injection DI/dépendance

L'injection de dépendances DI signifie en fait que les dépendances sur les classes sont automatiquement injectées via le constructeur

En termes simples, cela signifie que vous exploitez actuellement une classe, mais que certaines méthodes ou fonctions de cette classe ne peuvent pas être complétées par cette classe seule, mais doivent être complétées avec l'aide d'une autre classe

Le signe le plus direct est lorsque les données du paramètre sont transmises en tant qu'objet. À proprement parler, si vous souhaitez faire fonctionner une classe dans une autre classe, il existe une interdépendance entre les deux classes. La méthode de transmission des paramètres s'appelle injection

.

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

La raison pour laquelle l'injection de dépendance apparaît

Lorsque l'injection de dépendances n'est pas utilisée, PHP Lorsque vous devez utiliser une classe dans une autre classe, vous effectuez souvent les opérations suivantes

Par exemple, si je dois utiliser la classe adapter dans la classe container, je dois l'instancier avant utilisation

Si un grand nombre de classes externes doivent être utilisées, cela entraînera un degré de couplage trop élevé, ce qui peut facilement entraîner des difficultés de maintenance ultérieures

En termes simples, cela signifie que le conteneur ne peut pas fonctionner sans classes externes. C'est ce qu'on appelle un couplage trop élevé

.
<?php
class container
{
private $adapter;

public function __construct()
{
$this->adapter = new adapter();
}
}

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

Injection de dépendance simple

Le code ci-dessus est trop fortement couplé, ce qui conduit à l'émergence de l'injection de dépendances, principalement pour le découplage

Dans le cas suivant, il suffit de passer l'objet de classe qui doit être exploité

Les paramètres de l'opération d'injection de dépendances sont des objets au lieu de paramètres ordinaires. Avez-vous une meilleure compréhension

.

Mais une injection de dépendance aussi simple entraînera si vous dépendez de beaucoup de classes, il faudra beaucoup de temps pour transmettre les paramètres et il sera facile de se tromper

<?php
class container
{
private $adapter;

public function __construct(adapter $adapter)
{
$this->adapter = $adapter;
}
}

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

Injection de dépendances de haut niveau

Afin de résoudre le problème de confusion des paramètres ci-dessus, l'injection de dépendances a été optimisée pour le moment

Utilisez la méthode magique, __get pour définir l'objet

À l'heure actuelle, nous pouvons résoudre le problème du trop grand nombre de dépendances et des paramètres confus

<?php
class container
{
public $instance = [];

public function __set($name, $value)
{
$this->instance[$name] = $value;
}
}

$container = new container();

$container->adapter = new adapter();
$container->autofelix = new autofelix();

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

Application d'injection de dépendances

Nous définissons d'abord une classe container, qui sert principalement à injecter la classe que vous souhaitez exploiter dans le conteneur

Lors de son utilisation, il vous suffit de transmettre l'objet conteneur

<?php
class container
{
public $instance = [];

public function __set($name, $value)
{
$this->instance[$name] = $value;
}
}

class adapter
{
public $name = '我是调度器';
}

$container = new container();
$container->adapter = new adapter();

class autofelix
{
private $container;

public function __construct(container $container)
{
$this->container = $container;
}

public function who($class)
{
return $this->container->instance[$class]->name;
}
}

$autofelix = new autofelix($container);

$who = $autofelix->who('adapter');

var_dump($who); //我是调度器

L'éditeur php Baicao vous fera découvrir l'injection de dépendances (DI) en PHP. L'injection de dépendances est un modèle de conception logicielle qui permet d'améliorer la flexibilité et la maintenabilité du code. Cet article présentera en détail le concept, le principe et l'application pratique de DI en PHP pour vous aider à mieux comprendre et appliquer la technologie d'injection de dépendances.

Optimisation de haut niveau de l'injection de dépendances

Dans l'application ci-dessus, nous injectons directement l'objet instancié dans le conteneur

Cela entraînera l'instanciation de tous les objets avant d'être utilisés, entraînant une consommation de ressources

Nous pouvons passer la fermeture, afin que l'objet ne soit pas instancié et injecté. Lorsque vous avez besoin de l'utiliser, instancier-le, ce qui peut réduire la consommation de serveurressources

.
<?php
$container = new container();
$container->adapter = new adapter();

//高阶优化
$container = new container();
$container->adapter = function () {
return new adapter();
};

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer