Active Record vs Data Mapper

PHP 🔴 Senior

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

← → au clavier pour passer d'une fiche à l'autre