Bonjour,

Je suis en train d'amélorier un site, et je me pose la question suivante :
Vaut-il mieux utiliser des scopes ou des repositories ?
Quels sont les différences et que demande les bonnes pratiques pour que j'ai un site qui ai une maintenance et une evolutivité la plus grande possible.

Merci d'avance pour votre aide.
Arnaud

3 réponses


popotte
Réponse acceptée

Helo :)

Alors ça dépends de ton utilisation

Les scope sont plus des racourcis de requetes à implémenter dans un model, pour rendre les scopes réutilisables tu peux lers extraire dans des traits et inclure dans les models où tu as besoin des scopes

Les repositories c'est plus pour ajouter des actions par défaut dans ton model

Après tu peux toujorus utiliser les Repo en guise de scopes, perso je sépare, les scope pour les requetes, les repos pour les action (paginate, sort, lister une certaine catégorie, etc...)

Merci à toi popotte, pour cette réponse très claire.

Bonjour, j'espère ne pas répondre trop tard !

Les scopes et les repositories ont des rôles différents et peuvent être utilisés ensemble pour améliorer la maintenance et l’évolutivité de ton site.
Les scopes permettent de définir des requêtes réutilisables et spécifiques à un modèle Eloquent. Ils sont pratique pour encapsuler des requêtes complexes directement dans le modèle. Tandis que les repositories servent de couche d'abstraction entre contrôleurs et modèles afin de centraliser les opérations de récupération et de manipulation des données, facilitant ainsi les tests et la gestion des modifications futures.
Pour ma part, j'utilise les scopes pour des requêtes spécifiques et réutilisables au sein des modèles et les repositories pour encapsuler la logique de gestion des données, ce qui rend (plus ou moins) le code plus modulable et testable.

J'espère que mon avis à ce sujet t'aidera!
:)