Active Record vs Data Mapper
PHP 🔴 SeniorDefinition
Deux patterns ORM opposes. Active Record (Eloquent) : l'objet connait sa persistence. Data Mapper (Doctrine) : un mapper externe gere la persistence, l'entite reste pure.
Analogie
Active Record : un employe qui classe lui-meme ses dossiers. Data Mapper : un archiviste independant qui gere 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 metier riche.
Anti-pattern
Utiliser Active Record sur un domaine complexe et finir avec des modeles de 1000 lignes melangeant metier et persistence.