Ok, je viens de revoir Propel, je l'ai en effet confondu avec des trucs comme Doctrine. Le principe général de jDao est effectivement similaire à Propel. Bien que jDao soit plus vieux que Propel (c'est une évolution de CopixDao, utilisé dans le projet Copix qui fut l'un des premiers framework PHP), il est un peu moins "puissant" sur certaines choses, comme la gestion des relations n-n. Mais il propose d'autres particularités en contre-partie. Par exemple dans jDao (et si je ne me trompe pas dans ce que j'ai vu dans propel):
* On peut déclarer dans le fichier XML des méthodes et indiquer les critères de ce qu'elles devront récupérer, effacer ou mettre à jour. Cela évite de devoir générer la requête à coup d'objet Criteria comme dans Propel : les requêtes sont donc en dur dans la classe générée.
* jDao suit le design pattern DAO
* Un objet DAO peut être mappé sur plus d'une table
* Pas de génération explicite des classes : dés qu'on modifie le fichier XML, les classes sont regénérées (on peut désactivé cette vérification de mise à jour en prod).
* Un fichier XML par objet mappé, et non pas tout dans un seul fichier. Chaque module contient donc ses propres fichiers XML jDao. Cela facilite l'installation de modules tiers. (peut être qu'il est possible d'avoir plusieurs fichiers avec Propel, mais j'ai pas vu)
Enfin jDao est plus léger que Propel (6 fichiers/81ko, contre 74 fichiers/681ko pour propel), même si il est vrai qu'il a un peu moins de fonctionnalités. Mais ce qu'il permet de faire couvre déjà pas mal des besoins AMHA. Et des améliorations sont prévues dans les versions à venir.
Re: Quel avantage par rapport à symfony ?
Ok, je viens de revoir Propel, je l'ai en effet confondu avec des trucs comme Doctrine. Le principe général de jDao est effectivement similaire à Propel. Bien que jDao soit plus vieux que Propel (c'est une évolution de CopixDao, utilisé dans le projet Copix qui fut l'un des premiers framework PHP), il est un peu moins "puissant" sur certaines choses, comme la gestion des relations n-n. Mais il propose d'autres particularités en contre-partie. Par exemple dans jDao (et si je ne me trompe pas dans ce que j'ai vu dans propel):
* On peut déclarer dans le fichier XML des méthodes et indiquer les critères de ce qu'elles devront récupérer, effacer ou mettre à jour. Cela évite de devoir générer la requête à coup d'objet Criteria comme dans Propel : les requêtes sont donc en dur dans la classe générée.
* jDao suit le design pattern DAO
* Un objet DAO peut être mappé sur plus d'une table
* Pas de génération explicite des classes : dés qu'on modifie le fichier XML, les classes sont regénérées (on peut désactivé cette vérification de mise à jour en prod).
* Un fichier XML par objet mappé, et non pas tout dans un seul fichier. Chaque module contient donc ses propres fichiers XML jDao. Cela facilite l'installation de modules tiers. (peut être qu'il est possible d'avoir plusieurs fichiers avec Propel, mais j'ai pas vu)
Enfin jDao est plus léger que Propel (6 fichiers/81ko, contre 74 fichiers/681ko pour propel), même si il est vrai qu'il a un peu moins de fonctionnalités. Mais ce qu'il permet de faire couvre déjà pas mal des besoins AMHA. Et des améliorations sont prévues dans les versions à venir.
[ Répondre ]