Un ORM (Object-Relational Mapping) est une couche logicielle qui fait le pont entre le code objet et la base de données relationnelle. Il permet de manipuler des données comme des objets PHP plutôt que d'écrire du SQL brut, tout en gérant les relations, les transactions et les migrations.
Doctrine (Data Mapper)
Doctrine, l'ORM de référence dans l'écosystème Symfony, suit le pattern Data Mapper : les entités sont de simples objets PHP, et la persistance est gérée séparément par l'EntityManager. Cette séparation favorise un code testable et maintenable.
Pièges de performance
L'ORM simplifie le développement mais peut masquer des problèmes de performance : requêtes N+1, chargement excessif de relations, requêtes mal optimisées. Surveiller les requêtes SQL générées et utiliser le Profiler Symfony est indispensable.
L'ORM est un outil puissant qui accélère le développement, mais il ne dispense pas de comprendre le SQL sous-jacent. Les meilleures applications combinent l'ORM pour le CRUD courant et des requêtes natives pour les cas complexes.