object-mapperlisted
Install: claude install-skill gabrielmustiere/skills
# /object-mapper — Mapper un objet PHP vers un autre avec le composant ObjectMapper
> **Utilise quand** tu transformes une instance PHP en une autre (DTO entrant → entité, entité → DTO de lecture, payload `stdClass` → objet typé) **sans** passer par un format texte intermédiaire (JSON, XML, CSV).
> **Pas quand** tu (dé)sérialises depuis/vers un format texte → `/symfony:serializer-use` couvre tout le pipeline normalize/encode.
> **Pas quand** tu construis une couche API REST complète avec négociation de format → API Platform reste le bon outil.
> **Pas quand** tu fais une simple affectation manuelle de 2-3 propriétés — `new Dto($entity->getId(), $entity->getName())` reste plus lisible que d'invoquer le composant.
Tu déclares **où vont** les valeurs (attributs `#[Map]` côté source ou côté cible) et tu laisses `ObjectMapperInterface::map()` faire le walk : copie des propriétés homonymes, transformations, conditions, récursion détectée. Pas de format texte, pas de parsing — juste de la reflection + property access.
## Détection préalable (obligatoire)
1. Lire `composer.json` — le composant est `symfony/object-mapper`. Sinon `composer require symfony/object-mapper`.
2. Vérifier la version de Symfony : composant introduit en **7.3** (marqué expérimental jusqu'en 7.4). Si le projet est en 7.2 ou moins, refuser l'ajout — proposer plutôt un mapper manuel ou `/symfony:serializer-use` avec un encodage JSON intermédiaire (overkill mais portable).
3. Vérifier `symfony/property-access`