Builder
-
^Construire des logiciels modulaires et évolutifs
Construction de classe
Le “class builder” est un des outil de modularité qui permet l’injection de dépendances par assemblage de classes.
Vous pouvez enrichir toute classe de votre logiciel, d’un logiciel it.rocks tiers intégré, ou du framework, en lui adjoignant des traits ou interfaces PHP, ou en la remplaçant par votre classe héritée.
Application d’un trait / interface à une classe de base
Le framework propose en standard une classe de gestion des utilisateurs minimaliste User.
Vous pouvez y ajouter le prénom et le nom de l’utilisateur en l’enrichissant du trait disponible dans le framework.<?php namespace Your_Vendor\Your_Project; use ITRocks\Framework; return [ Framework\User::class => [ Framework\Address\Person::class ] ];
Partout dans le logiciel où est fait référence à un objet de classe User, cet objet sera enrichi et complété des propriétés $first_name et $last_name du trait Person.
Si l’ensemble des traits adjoints à votre classe remplissent les contrats correspondants, vous pouvez également rajouter des interfaces via cette notation. Cela sera utile à la validation des contrats par le compilateur, et vous permettra d’utiliser
instanceof
dans votre code pour appliquer des traitements spécifiques en fonction de si celles-ci sont appliquées ou non à votre configuration.Remplacement d’une classe de base par une classe héritée
Pour le même exemple que ci-dessus, vous pouvez programmer votre propre classe de gestion d’utilisateur, héritée de celle du framework, pour y ajouter des traits et propriétés supplémentaires :
your_vendor/your_project/User.php :
<?php namespace Your_Vendor\Your_Project; use ITRocks\Framework; use ITRocks\Framework\Address\Person; class User extends Framework\User { use Person; /** * @var string */ public $twitter_nickname; }
<?php namespace Your_Vendor\Your_Project; use ITRocks\Framework; use Your_Vendor\Your_Project return [ Framework\User::class => Your_Project\User::class ];