Architecture Laravel
Statut
Document de cadrage backend — version initiale.
Vue d'ensemble
Le backend cible de DMV est une API Laravel centrale modulaire. Il doit porter la logique métier commune de l'écosystème : DMV public, backoffice, PlayLoop, AssoSuite, Mairie et futures applications connectées.
Le dossier api contient une application Laravel avec PHP ^8.3, Laravel ^13.0, Sanctum, Stripe PHP et Firebase JWT.
Rôle du backend
Le backend doit :
- exposer une API versionnée sous
/api/v1; - centraliser les règles métier ;
- gérer authentification, autorisation et RBAC ;
- protéger les mutations ;
- orchestrer les services partagés ;
- déclencher jobs et traitements asynchrones ;
- préparer la future AI Gateway ;
- éviter la dispersion de logique métier dans les frontends.
État actuel visible
| Élément | État visible |
|---|---|
| Framework | Laravel ^13.0, PHP ^8.3. |
| API | Routes sous /api/v1, health-check /api/v1/health. |
| Auth | Sanctum et validation JWT Supabase via firebase/php-jwt. |
| Modules | Domaines métier sous api/app/Modules. |
| Providers | Modules déclarés dans api/bootstrap/providers.php. |
| Middleware | identify.app, ensure.admin, device.token, asso.access, mairie.access. |
| Jobs | ExpireBoosts, ExpireAlertes, ProcessStripeWebhook visibles. |
| Tests | Tests feature par modules dans api/tests/Feature. |
Modules métier visibles
IdentityTerritoryActorPublicationCommunityMonetizationSettingsAnalyticsPlayLoopAssoSuiteChatMairieAdmin
Principes d'architecture
- Un module correspond à un domaine métier identifiable.
- Les contrôleurs restent fins.
- La logique métier est portée par les services, policies, jobs ou objets dédiés.
- Les Form Requests portent la validation d'entrée.
- Les DTOs structurent les sorties quand ils existent.
- Les décisions sensibles doivent rester côté backend.
- Les frontends consomment l'API, sans répliquer les règles métier.
Vision cible
La cible est une API Laravel centrale, modulaire et stable, avec :
- contrats API documentés ;
- services métier cohérents ;
- actions ou cas d'usage explicites pour les opérations complexes ;
- événements métier lorsque nécessaire ;
- queues pour les traitements lourds ;
- ressources ou DTOs harmonisés ;
- observabilité et tests renforcés ;
- AI Gateway centralisée pour les usages IA.
Points à clarifier
- Rôle exact de Supabase face à l'API Laravel.
- Convention unique DTO vs API Resources.
- Place future des Actions.
- Stratégie d'événements métier.
- Documentation exhaustive des endpoints.