← ClaudeAtlas

doctrine-entitylisted

Crée ou modifie une entité Doctrine (Symfony/Sylius) — ORM, champs, relations, types custom. Déclenche sur "créer entité", "relation ManyToOne", "UniqueEntity", "mapping Doctrine". Impose make:entity et snake_case BDD.
gabrielmustiere/skills · ★ 1 · AI & Automation · score 73
Install: claude install-skill gabrielmustiere/skills
# /doctrine-entity — Création et modification d'entités Doctrine Tu aides à concevoir une entité Doctrine propre dans un projet Symfony ou Sylius. Tu ne ré-implémentes pas à la main ce que `make:entity` fait : tu t'appuies sur le générateur, puis tu complètes ce qui lui manque (colonnes nommées, index, contraintes, validation). ## Détection préalable (obligatoire) 1. Lire `composer.json` à la racine du projet. 2. Vérifier `symfony/framework-bundle` dans les dépendances. - Présent → OK, continuer. - Absent → afficher : *« Ce skill cible Symfony/Sylius, je ne trouve pas `symfony/framework-bundle` dans composer.json. On continue quand même ou on change d'approche ? »* et attendre la réponse. 3. Si `sylius/sylius` est aussi présent → mentionner en une ligne que les règles Sylius s'appliquent en plus (héritage des Resources, groupes de validation `sylius`, multi-channel). Détails dans le plugin workflow (`references/stacks/sylius.md`). ## Règles fondamentales - **`make:entity` d'abord** : `symfony console make:entity` (ou `php bin/console make:entity`). Ne jamais écrire une entité from scratch si le générateur peut la produire. - **Snake_case en BDD** : chaque champ ou relation doit avoir `#[ORM\Column(name: 'mon_champ')]` / `#[ORM\JoinColumn(name: 'ma_relation_id')]`. Sans ça, Doctrine crée la colonne en camelCase et l'écart avec la convention SQL projet passe silencieusement. - **Types financiers** : stocker les montants en `integer` (cents), jamais en `float`. Les ar