1. Concepts
1.1 Présentation
Voici comment instancier deux objets qui entretiennent une dépendance entre eux :
$b = new B(new A());
Il est dit que A est injecté dans B. Il est dit que B consomme A.
1.2 Programmation par contrat
Dès le début de l’article, il est nécessaire de faire une petite digression pour parler de la programmation par contrat, au sens où ZF2 l’entend, une problématique qui est connexe à l’injection de dépendance.
Voici deux composants qui entretiennent une dépendance « en dur » :
class A
{
public function methodA();
{
}
private function _methodP();
{
}
}
class B
{
private $_a;
public function __construct(A $a)
{
$this->_a = $a;
}
public function methodB()
{
return $this->_a->methodA();
}
}
B agrège A. Le composant B ne peut fonctionner qu’avec le composant A. Or, si nous voulons rendre notre composant B, il est nécessaire de permettre qu’il puisse agréger d’autres types d’objets, ce qui n’est...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première