ORM : Propel ou Doctrine

Publié le par Christophe

Un ORM ou logiciel de Mapping Objet Relationel (Objet Realtional Mapping) est une interface  qui permet de représenter et de manipuler sous forme d'objet tous les éléments qui composent une base de données relationnelle.

Une table ou un enregistrement de celle-ci est percu comme un langage sur lequel il est possible d'appliquer des actions : les méthodes.

L'avantage de cette approche est de s'abstraire complètement  de la tenchnologie de bases de données qui fonctionne en arrière-plan.

A partir d'un modèle de données définis, Doctrine construit entièrement la base de données pour le SGBD choisi, ainsi que les classes permettant d'interroger la base de données au travers d'objets.

Grâce aux relations qui lient les tables entre elles, Doctrine est capable de retrouver tous les enregistrements d'une table qui dépendent d'un autre enregistrement dans une seconde table.

Texte tiré du livre Symfony, mieux developper en php avec Symfony 1.2 et Doctrine de Fabien Potencier et Hugo Hamon dans la collection Les cahiers du Programmeur aux éditions Eyrolles.

Avantages de Propel :
propel.gif


Un des avantages de Propel est de générer du code pour les méthodes et requêtes. Du coup, on a une trace du code généré, et cela est beaucoup plus pratique pour le debugage.

D'autres parts, Propel est facile à utiliser pour les requêtes basiques, comme récupérer des objets avec des clause where et join. Mais il est beaucoup moins à l'aise lorsque les requêtes sont avancées avec des Count, Group by etc...

Avantages Doctrine:
doctrine.png

Doctrine, basée sur le pattern ActiveRecord, facilite l'otimisation des données à récupérer. Cet Orm raccorucie les temps de développement.
C'est l'avenir dans Symfony, car dès la version 2.0, Doctrine devient l'Orm par défaut dans symfony. Propel sera toujours supporté, mais laisse la place à Doctrine.
Publicité

Publié dans Symfony

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article