# Framework:make:entity

> Génère une entité Doctrine avec repository selon principes Elegant Objects

- Skill: `majiayu000/framework-make-entity` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/framework-make-entity`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/framework-make-entity/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/framework-make-entity

---


# Framework Make Entity Skill

## Description
Génère une entité Doctrine complète avec son repository selon les principes Elegant Objects.

## Usage
```
Use skill framework:make:entity
```

## Variables requises
- **{EntityName}** - Nom de l'entité en PascalCase (ex: Product)
- **{entityName}** - Nom de l'entité en camelCase (ex: product)
- **{namespace}** - Namespace du projet (défaut: App)
- **{properties}** - Liste des propriétés avec types (name:string, price:float)

## Dépendances
- Contracts présents (appelle `framework:make:contracts` si absent)

## Outputs
- `src/Entity/{EntityName}.php`
- `src/Repository/{EntityName}Repository.php`
- `src/Repository/{EntityName}RepositoryInterface.php`

## Workflow

1. Demander le nom de l'entité (EntityName)
2. Demander les propriétés (nom, type, nullable)
3. Vérifier si `src/Contracts/` existe, sinon appeler `framework:make:contracts`
4. Générer l'entité depuis le template `templates/Entity/`
5. Générer le repository et son interface
6. Afficher le résumé des fichiers créés

## Patterns appliqués

### Entité
- Classe `final`, constructeur privé, factory statique `create()`
- Traits : DatabaseTrait, NullTrait, DependencyInjectionTrait
- Interfaces : LoggableInterface, DatabaseEntityInterface, NullableInterface, DependencyInjectionAwareInterface, OutInterface, HasUrlsInterface, InvalideInterface

### Repository
- Classe `final`, extends ServiceEntityRepository
- Implémente interface du repository

## References

- [Usage](references/usage.md) - Exemples et détails de génération

## Notes
- ID Uuid ajouté automatiquement
- Propriétés privées avec getters (pas de setters)
- Méthode `toLog()` inclut toutes les propriétés

