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()ouUser::create()) - Requête utilisée une seule fois
- La logique peut aller dans un scope Eloquent du modèle