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