Composition over Inheritance
PHP 🟡 MidDéfinition
Principe de design qui favorise l'assemblage d'objets (a un) plutôt que l'héritage (est un) pour la réutilisation de code. Produit des architectures plus flexibles.
Analogie
Comme des briques LEGO : on assemble des pièces pour construire ce qu'on veut, plutôt que d'hériter d'un modèle fixe.
Exemple de code
class OrderService {
public function __construct(
private PaymentGateway $payment,
private Mailer $mailer,
private Logger $logger,
) {}
}
Cas d'usage
Dans la majorité des cas ou on est tente d'hériter pour réutiliser du code.
Anti-pattern
Créer des hiérarchies d'héritage profondes de 4+ niveaux pour partager du comportement.