Active Record vs Data Mapper

PHP 🔴 Senior

Definition

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