Aller au contenu principal

Conventions — Repositories

Les repositories sont optionnels. Les utiliser uniquement quand la logique de requête est répétée, complexe ou partagée.

Responsabilités autorisées

  • Construire des requêtes Eloquent réutilisables
  • Encapsuler les lookups de persistance
  • Retourner des modèles, collections, paginateurs ou query builders

Interdit dans les repositories

  • Autorisation
  • Validation
  • Création de réponse HTTP
  • Orchestration de processus métier

Exemple

public function activeForService(int $idService): Builder
{
return User::query()
->where('id_service', $idService)
->where('is_active', true);
}

public function withRoles(): Builder
{
return User::query()->with('roles');
}

Quand NE PAS créer un repository

  • CRUD trivial (un simple User::find() ou User::create())
  • Requête utilisée une seule fois
  • La logique peut aller dans un scope Eloquent du modèle