← ClaudeAtlas

event-listenlisted

Crée un Event Listener Symfony — `#[AsEventListener]` ou tag `kernel.event_listener`, `__invoke()`, priorité. Déclenche sur "event listener", "AsEventListener", "écouter événement", "onKernelRequest", "onKernelException".
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /event-listen — Event Listener Symfony > **Utilise quand** une seule méthode réagit à un événement (kernel, security, custom). > **Pas quand** plusieurs événements liés dans la même classe → `/symfony:event-subscribe`. > **Pas quand** tu crées/dispatches l'événement → `/symfony:event-dispatch`. Tu attaches un callback à un événement sans passer par `EventSubscriberInterface`. Tu utilises l'attribut `#[AsEventListener]` (PHP 8+, préféré) ou le tag YAML `kernel.event_listener` pour les cas où la config externe est nécessaire. ## Détection préalable (obligatoire) 1. Lire `composer.json` — vérifier `symfony/event-dispatcher` (tiré par `symfony/framework-bundle`). 2. Lire `config/services.yaml` — vérifier `_defaults.autoconfigure: true` (indispensable pour que `#[AsEventListener]` soit honoré sans config manuelle). 3. Si plusieurs événements dans la même classe **et** que la logique est liée → suggérer `/symfony:event-subscribe` avant d'aller plus loin. `AsEventListener` multi-événements reste OK, mais le subscriber auto-documente mieux la liste des abonnements. 4. Événement custom cible → vérifier qu'il est dispatché (`grep -r "->dispatch(" src/`). Sinon `/symfony:event-dispatch`. ## Règles fondamentales - **Attribut > YAML** : `#[AsEventListener]` est la forme canonique depuis Symfony 6.1. Le tag YAML n'est nécessaire que si le listener est une classe qu'on ne peut pas modifier (vendor) ou si on veut désactiver l'abonnement par environnement via `when@env`. - **`__invoke