27622 shaares
L’auteur recommande de créer des repositories Doctrine par composition plutôt que d’hériter de ServiceEntityRepository ou EntityRepository. En injectant EntityManagerInterface et en encapsulant le repository natif, on expose uniquement des méthodes métier explicites, sans laisser les contrôleurs utiliser librement findBy(). Cette approche centralise les règles de filtrage, clarifie les contrats de retour (get() lève une exception, find() peut retourner null) et évite les complications liées à l’instanciation des repositories par Doctrine. L’article illustre aussi une séparation entre opérations de lecture et d’écriture, avec PHP 8.4.