Repository Pattern

PHP 🟡 Mid

Definition

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.
#core#interview#architecture