Organisation des dossiers
Statut
Document de cadrage backend — version initiale.
Structure générale visible
Le backend Laravel est situé dans api.
Structure principale :
api/
├── app/
│ ├── Http/
│ │ ├── Controllers/
│ │ └── Middleware/
│ ├── Modules/
│ └── Providers/
├── bootstrap/
│ ├── app.php
│ └── providers.php
├── config/
├── database/
│ ├── migrations/
│ ├── factories/
│ └── seeders/
├── routes/
│ └── api.php
└── tests/
Structure d'un module
Les modules suivent majoritairement cette organisation :
app/Modules/<Module>/
├── Controllers/
├── DTOs/
├── Models/
├── Policies/
├── Providers/
├── Requests/
├── Routes/
└── Services/
Certains modules ajoutent des dossiers spécifiques :
Jobspour Mairie et Monetization ;Middlewarepour AssoSuite et Mairie ;Authpour PlayLoop ;Mailpour AssoSuite ;Contextpour Publication.
Rôle des dossiers
| Dossier | Rôle |
|---|---|
Controllers | Entrée HTTP, appel des services, réponse API. |
DTOs | Format de sortie ou objet de transfert. |
Models | Modèles Eloquent du domaine. |
Policies | Autorisations liées aux modèles. |
Providers | Enregistrement routes, services et policies. |
Requests | Validation des entrées HTTP. |
Routes | Routes API du module. |
Services | Logique métier et orchestration. |
Jobs | Traitements asynchrones ou planifiés. |
Dossiers non visibles actuellement
Les dossiers suivants ne sont pas visibles comme convention généralisée :
ActionsEventsListenersResourcesRepositories
Ils peuvent être introduits plus tard si un besoin réel apparaît, mais ne doivent pas être documentés comme livrés.
Convention cible
Chaque nouveau module devrait contenir au minimum :
ControllersModelsProvidersRoutesServicesRequestssi le module accepte des écrituresDTOsouResourcesselon la convention stabilisée
Points à clarifier
- Harmoniser les modules qui n'ont pas tous les mêmes sous-dossiers.
- Choisir entre DTOs, API Resources ou combinaison stricte.
- Définir quand créer un dossier
Actions. - Définir la place des événements métier.