1.6 KiB
1.6 KiB
Framework Make Contracts
Génère les interfaces de contrats pour une architecture Elegant Objects.
Vue d'ensemble
Cette skill crée l'ensemble des interfaces nécessaires pour supporter les principes Elegant Objects et DDD dans un projet Symfony.
Interfaces générées
Interfaces principales
- OutInterface - Pour objets de sortie (DTO immuables)
- InvalideInterface - Pour exceptions métier
- HasUrlsInterface - Pour objets ayant des URLs générées
Interfaces de data
- OutDataInterface - Pour data classes de sortie
- InvalideDataInterface - Pour data classes d'invalidation
- UrlsDataInterface - Pour data classes d'URLs
Interfaces spécialisées
- StoryInterface - Pour stories de tests (Foundry)
- DoctrineMigrationInterface - Pour migrations Doctrine
Utilisation
# Via skill
Use skill framework:make:contracts
Structure créée
src/
└── Contracts/
├── OutInterface.php
├── InvalideInterface.php
├── HasUrlsInterface.php
├── OutDataInterface.php
├── InvalideDataInterface.php
├── UrlsDataInterface.php
├── Story/
│ └── StoryInterface.php
└── Doctrine/
└── DoctrineMigrationInterface.php
Prérequis
Aucun - C'est la première skill à exécuter dans un nouveau projet.
Principes Elegant Objects appliqués
- Toutes les interfaces définissent des contrats clairs
- Pas de méthodes statiques
- Chaque interface a une responsabilité unique
- Favorise l'immutabilité et l'encapsulation