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.
OpenRC, depuis sa version 0.60 sortie en février 2025, permet désormais de gérer des services utilisateurs, une fonctionnalité auparavant réservée à Systemd. Cette mise à jour permet de lancer automatiquement des applications spécifiques à l'utilisateur, comme un lecteur audio en mode serveur, dès la connexion, et de les arrêter à la déconnexion. OpenRC offre ainsi une gestion plus flexible et moderne des services, avec des fonctionnalités telles que la supervision et la relance automatique en cas de crash.
L'article est un guide complet sur l'utilisation de la commande systemctl : une interface qui permet de gérer les services sous Linux. L'auteur présente les commandes principales, comment définir des services SystemD, des bonnes pratiques, y compris en sécurité, etc.
Un résumé pour l'implémentation pratique des principes du DDD
Tout est dans le titre
Tout est dans le titre
Un excellent guide sur SystemD / Systemctl / Journalctl
Tout est dans le titre
Suite de la série sur systemd - l'auteur montre comment définir un service, et explore leurs types (simple, exec, forking, etc.) et cas d'usages
Cet article fait partie de ceux listés dans https://schlitt.info/blog/0784_best_of_posts_for_engineers.html
L'auteur fait la distinction entre newables, des objets chargés d'un état, et les injectables, des objets accomplissant les tâches.
Les bonnes pratiques qu'il défend sont :
- les newables ne doivent pas dépendre d'injectables
- les injectables ne doivent pas inclure de newables dans leurs attributs.
Si ces 2 règles ne sont pas suivies, des effets de bord peuvent avoir lieu.
Tout est dans le titre
Un service Symfony a besoin d'un autre service, mais ce besoin varie selon le contexte d'exécution. L'auteur montre l'utilisation des tags pour injecter automatiquement tous les services utilisés.
Dans un projet Symfony, un service peut avoir besoin d'autres services, mais ce besoin varie en fonction du contexte d'exécution...Au lieu d'injecter tous les services pouvant être utilisés dans le constructeur, on peut utiliser un "service subscriber" à la place. L'auteur montre comment faire.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre