Création d'un conteneur d'
injection de dépendance implémentant l'interfaces du PSR11
et utilisant l'API de reflection de PHP. ASP.NET la vitrine MVC, partie 13 : Injection de dépendances | Microsoft Docs. Capacité du conteneur
Créer une instance d'une classe sans dépendance
Créer une instance d'une classe avec dépendance(s)
Créer une instance d'une classe avec dépendance(s) sur plusieurs niveaux de profondeur
Créer une instance d'une classe à partir d'une interface
Gestion des dépendances de type scalaire optionnel ou non optionnel
Interface
Pour instancier une classe à partir d'une interface, il faudra indiquer à quelle
classe est rattachée cette interface. Sinon le conteneur renverra une exception de type NotFoundExceptionInterface (PSR11). Pour associer une interface à une classe, il faudra procéder de la façon suivante:
$container = new container();
// Association Interface/Class
$container->addAlias(FooInterface::class, Foo::class);
// Création de l'instance
$container->get(FooInterface::class);
La methode addAlias() utilise le modèle Fluent. Paramètre
Pour instancier une classe avec des paramètres non optionnels, il faudra indiquer la valeur de
chaque paramètre.