Devlog #3 : Refactoring Global et Architecture de Service
Focus : Migration vers une architecture granulaire pour réduire la dette technique.
La mutation architecturale :
Le modèle initial Controller <-> Service <-> Repository a été refactoré pour éviter l'apparition de "Services fourre-tout". La nouvelle structure sépare strictement les responsabilités :
- Managers : Centralisation des opérations CRUD et de la logique de persistance (ex: méthode
validateAndSave). - Mappers : Dédiés exclusivement à la conversion bidirectionnelle Entité <=> DTO.
- RequestMappers : Déportation de la logique de traitement des requêtes (extraction, validation, transformation) hors des contrôleurs.
- Traits & Utils :
- Unification de la gestion des horodatages (
createdAt,updatedAt) via des Traits. - Création de classes utilitaires pour la génération d'UUID et les métadonnées de pagination.
🛡️ Robustesse de l'API :
- Standardisation : Centralisation des retours via une classe
ApiResponsepour garantir une structure JSON constante. - DTOs Typés : Passage des propriétés en
privateavec getters et organisation par répertoires (Request / Response). - Documentation : Intégration de modèles
OAModelpour une documentation OpenAPI (Swagger) fidèle au code. - Journalisation : Utilisation de Monolog via
monolog-bundlepour une gestion fine des logs applicatifs.