46 liens privés
Les façades de service offrent une alternative à l'injection de dépendances traditionnelle dans Symfony, particulièrement utile pour les utilitaires comme les loggers ou les rapports d'erreurs, où elles simplifient le code et réduisent les instanciations inutiles. Elles sont également efficaces pour les objets paresseux et les situations où l'inversion de contrôle (IoC) est impossible, comme l'instanciation manuelle de classes ou l'utilisation de bibliothèques externes qui ne supportent pas l'IoC.
Les développeurs Symfony sont souvent réticents à l'idée d'utiliser des façades de service, les confondant avec des classes statiques et craignant qu'elles introduisent un état global. Cependant, les façades de service sont en réalité une forme d'injection de dépendances, offrant flexibilité et personnalisation sans ajouter de dépendance supplémentaire au conteneur de services. Elles permettent aux classes d'appeler dynamiquement des services lorsqu'elles en ont besoin, tout en restant liées au framework utilisé.
L'auteur compare la façon d'appréhender l'abstraction entre une approche objet et une approche fonctionnelle. Il prend comme exemple le problème du calcul de la somme des entiers entre 1 et n.
Tout est dans le titre
Inversion of control is not just dependency injection - the observer and template method patterns use it as well. Study all three to become an IoC expert!
Une introduction au design pattern "Inversion of Control" (ou principe d'Hollywood, "ne nous appelez pas, c'est nous qui vous appellerons" :))