L'articleremet en question l'utilisation des service subscribers, une pratique courante dans les projets Symfony pour gérer les dépendances occasionnelles. L'auteur propose une alternative en utilisant des événements et des écouteurs pour cibler les dépendances nécessaires, plutôt que de tout centraliser dans une seule classe. Par exemple, au lieu d'utiliser un AbstractController
et de charger toutes les dépendances dans le constructeur, il suggère de créer des événements spécifiques pour chaque action (comme l'envoi d'un e-mail ou la génération d'un PDF) et d'utiliser des écouteurs pour gérer ces événements. Cela permet une meilleure séparation des responsabilités et une plus grande flexibilité. L'article conclut en encourageant les développeurs à réfléchir avant d'utiliser des service subscribers et à envisager d'autres moyens pour éviter les dépendances occasionnelles, comme l'injection de dépendances directement dans les méthodes des contrôleurs.
L'article explique comment améliorer la structure et la performance des services dans Symfony en utilisant les "service subscribers". Il commence par souligner les problèmes liés au chargement automatique de nombreux services, qui peuvent entraîner une instanciation inutile de dépendances et compliquer l'extensibilité. La solution proposée est d'implémenter l'interface ServiceSubscriberInterface, ce qui permet de charger les services de manière paresseuse, c'est-à-dire uniquement lorsqu'ils sont réellement nécessaires. L'article montre également comment créer une classe de base abstraite pour centraliser la logique des services, améliorant ainsi la maintenabilité et l'expérience des développeurs. Enfin, il aborde l'utilisation de cette approche dans un bundle Symfony pour gérer des dépendances optionnelles, rendant les services plus modulaires et légers.