Aller au contenu principal

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 :

  • Jobs pour Mairie et Monetization ;
  • Middleware pour AssoSuite et Mairie ;
  • Auth pour PlayLoop ;
  • Mail pour AssoSuite ;
  • Context pour Publication.

Rôle des dossiers

DossierRôle
ControllersEntrée HTTP, appel des services, réponse API.
DTOsFormat de sortie ou objet de transfert.
ModelsModèles Eloquent du domaine.
PoliciesAutorisations liées aux modèles.
ProvidersEnregistrement routes, services et policies.
RequestsValidation des entrées HTTP.
RoutesRoutes API du module.
ServicesLogique métier et orchestration.
JobsTraitements asynchrones ou planifiés.

Dossiers non visibles actuellement

Les dossiers suivants ne sont pas visibles comme convention généralisée :

  • Actions
  • Events
  • Listeners
  • Resources
  • Repositories

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 :

  • Controllers
  • Models
  • Providers
  • Routes
  • Services
  • Requests si le module accepte des écritures
  • DTOs ou Resources selon 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.