validation-uselisted
Install: claude install-skill gabrielmustiere/skills
# /validation-use — Utiliser le Validator Symfony hors forms
> **Utilise quand** tu appelles `ValidatorInterface` hors d'un Form (DTO API, payload JSON, CLI).
> **Pas quand** tu ajoutes des contraintes sur une classe → `/symfony:validation-constraints`.
> **Pas quand** tu organises des groupes ou validations conditionnelles → `/symfony:validation-groups`.
Tu appelles directement `ValidatorInterface` depuis un contrôleur API, un service ou une commande. Tu renvoies une réponse HTTP bien formée (422 Problem Details côté API) et tu ne laisses jamais une `ConstraintViolationList` fuiter telle quelle.
## Détection préalable (obligatoire)
1. Lire `composer.json`.
2. Vérifier `symfony/validator`.
3. Si `api-platform/core` est présent → API Platform appelle le validator **automatiquement** lors du POST/PUT/PATCH sur une ressource. Pas d'appel manuel, on configure les groupes (`validationContext: ['groups' => [...]]`) dans les `#[ApiResource]` / `#[Put]`. Mentionner à l'utilisateur.
4. Si `symfony/form` est utilisé pour le flux → la validation est automatique après `handleRequest`. Ne **pas** réappeler `$validator->validate($entity)` (cf. `/symfony:form-handle`).
5. Si `symfony/serializer` présent et qu'on désérialise du JSON → combo serializer + validator est le pattern API sans form (détaillé plus bas).
## Règles fondamentales
- **Service injecté via le constructeur**, pas `$this->get('validator')`. Typehint `ValidatorInterface`.
- **`count($violations) > 0`** pour tester la p