Repository Pattern
PHP 🟡 MidDefinition
Couche d'abstraction entre la logique metier et l'acces aux donnees. Le repository expose des methodes metier et masque les details de persistence.
Analogie
Comme un bibliothecaire : tu lui demandes un livre par titre, il sait ou le trouver dans les rayons.
Exemple de code
interface UserRepository {
public function findByEmail(string $email): ?User;
public function save(User $user): void;
}
class DoctrineUserRepository implements UserRepository {
// Implementation avec Doctrine ORM
}
Cas d'usage
Pour decoupler la logique metier de la base de donnees et faciliter les tests unitaires.
Anti-pattern
Exposer des methodes query builder dans le repository, fuitant les details de persistence.