Modèle YAML pour créer un service Symfony d'itérateur tagué
Publié le 06/01/2023 • Actualisé le 06/01/2023
Ce bout de code fournit un modèle YAML pour créer un service Symfony d'itérateur tagué (tagged itertor) :
1. On active l'autowiring et l'auto configuration.
2. On déclare vouloir assigner le tag app.email
à tous les services implémentant l'interface EmailInterface
.
3. On charge tous les services implémentant l'interface EmailInterface
à partir d'un répertoire donné.
4. On injecte tous ces services tagués app.email
dans le service EmailCollection
.
5. Désormais, on peut utiliser le service EmailCollection
dans les autres services grâce à l'autowiring.
services:
# 1.
_defaults:
autowire: true
autoconfigure: true
# 2.
_instanceof:
App\Mailer\Email\EmailInterface:
tags: ['app.email']
# 3.
App\Mailer\Email\:
resource: '../../src/Mailer/Email/'
# 4.
App\Mailer\EmailCollection:
arguments:
- !tagged_iterator app.email
# 5.
App\Mailer\AppMailer: ~
#arguments:
#- App\Mailer\EmailCollection
Plus sur Stackoverflow Lire la doc Snippet aléatoire
A vous de jouer !
Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )
- Me remonter des erreurs ou typos.
- Me remonter des choses qui pourraient être améliorées.
- Aimez et repostez !
- Suivez moi sur Bluesky 🦋
- Inscrivez-vous au flux RSS.
- Cliquez sur les boutons Plus sur Stackoverflow pour me faire gagner des badges "annonceur" 🏅.
Merci et à très bientôt sur Strangebuzz ! 😉