Au vu des nombreux outils d'orm php que nous avons l'occasion de rencontrer sur la toile, nous vous proposons aujourd'hui de faire un point sur la situation.
La liste non exhaustive que nous présentons ici vous permettra de choisir un ORM en fonction des besoins, qui sont généralement liés à des problématiques de performances et de simplicité de développement/d'utilisation.
-Doctrine
-
les +
-Utilisation de DQL (doctrine query langages) qui permet de faciliter très largement l'écriture de requete sql dîtes complexes.
-Le nombre de fonctionnalités relativement important
-Tutoriels très efficaces et prise en main rapide
-Bonnes améliorations des performances liées à l'utilisation d'active record dans les dernières release -
les -
RAS
Pour les plus curieux, une définition d'active record est disponible ici et un exemple d'utilisation ici
-Propel : orm natif utilisé avec symfony
-
les +
- Nombre de fonctionnalités conséquent (~ doctrine) -
les -
-Définition du schéma de base de données et configuration en xml ( rebutoire pour les non initiés)
-Aide à l'écriture de requêtes sql complexes moins efficace que celle de Doctrine
Un premier aperçu d'utilisation est diponible à cette adresse.
Une comparaison intéressante sur l'utilisation de Doctrine et de Propel est accessible à cette adresse
Rendez vous sur le site de Symfony pour l'utilisation de propel ou doctrine avec le framework.
-PHPMyObject
-
les +
- Basé sur active record (comme Doctrine)
- Développé par des francophones
- Léger -
les -
- Nombre de fonctionnalités en retrait
- Pas d'aide à l'écriture de requêtes sql
-JDAO : composant du framework Jelix
-
les +
- Léger
- Développé par des francophones -
les -
- Nombre de fonctionnalités en retrait
- Définition du schéma de base et personnalisation en xml
- Pas d'aide pour l'écriture de requêtes sql
Il existe de nombreux autres projets ayant pour vocation de proposer des outils de mapping et d'orm. Ils sont néanmoins à des stades de développement moins avancés ou sont plus orientés pour la création de petits projets. En voici une sélection : Vous trouverez d'autres informations sur la section orm du site Developpez.com