Active Record vs Data Mapper
PHP 🔴 SeniorDéfinition
Deux patterns ORM opposes. Active Record (Éloquent) : l'objet connaît sa persistence. Data Mapper (Doctrine) : un mapper externe gère la persistence, l'entité reste pure.
Analogie
Active Record : un employé qui classe lui-même ses dossiers. Data Mapper : un archiviste indépendant qui gère le classement.
Exemple de code
// Active Record (Eloquent)
$user = User::find(1);
$user->name = 'Alice';
$user->save();
// Data Mapper (Doctrine)
$user = $em->find(User::class, 1);
$user->setName('Alice');
$em->flush();
Cas d'usage
Active Record pour les projets simples/rapides, Data Mapper pour les domaines complexes avec logique métier riche.
Anti-pattern
Utiliser Active Record sur un domaine complexe et finir avec des modèles de 1000 lignes mélangeant métier et persistence.