Composition over Inheritance
PHP 🟡 MidDefinition
Principe de design qui favorise l'assemblage d'objets (a un) plutot que l'heritage (est un) pour la reutilisation de code. Produit des architectures plus flexibles.
Analogie
Comme des briques LEGO : on assemble des pieces pour construire ce qu'on veut, plutot que d'heriter d'un modele fixe.
Exemple de code
class OrderService {
public function __construct(
private PaymentGateway $payment,
private Mailer $mailer,
private Logger $logger,
) {}
}
Cas d'usage
Dans la majorite des cas ou on est tente d'heriter pour reutiliser du code.
Anti-pattern
Creer des hierarchies d'heritage profondes de 4+ niveaux pour partager du comportement.