Architecture Backend (Symfony 7.3)
Le backend est conçu comme une API REST stateless, isolant strictement la logique métier des entités de persistance.
🧱 Structure des composants
Pour garantir la maintenabilité, j'ai mis en place un flux de données rigoureux :
- DTO (Data Transfer Objects) : Aucun objet Doctrine n'est exposé. Les entrées (
RequestDTO) et sorties (ResponseDTO) sont des objets simples, garantissant un contrat d'interface stable pour le Frontend. - Mappers : Des services dédiés assurent la transformation
Entity <-> DTO. Cela permet de faire évoluer la base de données sans impacter l'API. - Managers : Ils portent la logique de persistance et orchestrent les Services.
- Services : Contiennent la logique métier pure (calculs de stocks, règles de livraison).
🛠️ Qualité & Tests
L'architecture a été pensée pour être testable par composant :
- Unit Tests : Validation des Mappers et de la logique des Managers.
- Functional Tests : Tests des Controllers pour valider les endpoints de bout en bout.
- NelmioApiDoc : Documentation OpenAPI générée automatiquement pour faciliter l'intégration Frontend.