Développeur : PhpMyObject 0.10 : nouvelle version
Posté par Code34 (page perso, ). Modéré le 19 octobre 2007.
La nouvelle version de PMO vient d'être publiée. PMO est une API PHP qui sert de couche d'abstraction entre le SGBD et votre application PHP en transformant les résultats renvoyés par le SGBD en objet. Le but de PMO est de limiter les actions directement sur le SGBD en travaillant sur des objets chargés en mémoire. PMO affiche d'excellentes performances qui le rendent transparent.
Cette nouvelle version 0.10 est une release majeure qui implémente de nouvelles fonctionnalités :
NdM : PMO est un logiciel libre sous licence GPLv3
Cette nouvelle version 0.10 est une release majeure qui implémente de nouvelles fonctionnalités :
- les exceptions
- drivers pdo / postgresql / sqlite
- de nouvelles méthodes
NdM : PMO est un logiciel libre sous licence GPLv3
PMO (377 hits)
L'archive version 0.10 (58 hits)
Le manuel PMO (122 hits)
Dépêche précédente (57 hits)
> Lire la dépêche (25 commentaires, moyenne: 1,6).
Vous avez demandé le commentaire #876064.




Requete SQL Mysql / Postgresql
Salut,
J'ai lu dans ta doc que tu permettais d'executer directement des requetes sql via $controler->queryController($query)
Cependant les requetes sql peuvent etre differentes selon le sgbd: IE le limit/offset de mysql/postgresql.
Comment fais-tu pour gérer cela? tu converties la requête selon le driver?
[^]Re: Requete SQL Mysql / Postgresql
En fait, il n'y a pas besoin de convertir la requête SQL, celle-ci est envoyé tel quel au SGBD.
PMO traite les résultats renvoyés par le SGBD
Cela implique que si tu souhaites changer de SGBD du jour au lendemain, il faudra réécrire tes requêtes SQL pour les adapter à l'implémentation SQL du SGBD.
[^]Re: Requete SQL Mysql / Postgresql
Ca limite quand-même grandement l'intérêt de PMO alors
[^]Re: Requete SQL Mysql / Postgresql
Il est possible facilement de rajouter un mapper qui construirait les SELECT (car ça ne concerne que les SELECT) mais cela poserait des problèmes plus important que ça n'en résoudrait:
La plus part des problèmes de perfs sont liés à des requêtes sql mal écrites, ici le dev reste maitre de la requête passé au SGBD
De plus, tu ne changes pas de SGBD tout les jours
Et en dernier lieu, c'est pas le rôle de PMO d'implémenter des rustines pour corriger les implémentations exotiques du langage SQL des SGBD du marché ;)
[^]Re: Requete SQL Mysql / Postgresql
Il est évident que si tu ne considère que le point de vue des performances alors effectivement ta solution est bonne.
Par contre, pour moi, l'intérêt d'une abstraction au SGBD c'est justement de pouvoir changer à moindre frais de SGBD. Alors pour un projet perso ou jetable effectivement tu ne changes pas de SGBD tous les jours, par contre sur un projet de type CMS une abstraction totale de type hibernate ( http://www.hibernate.org/ en java ) est pour moi plus intéressant car tu n'impose plus un SGBD à ton appli.
[^]Re: Requete SQL Mysql / Postgresql
Effectivement, c'est un point à améliorer.
Je pense que la couverture totale de l'abstraction se fera dans la roadmap en 0.12 en même temps que la gestion des alias.
[^]Re: Requete SQL Mysql / Postgresql
En même temps, 90% des requêtes utilisées par un site web standard sont communes a tous les SGBD.
Pour les autres, elle sont surtout de la manipulation de chaînes de caractères. Mais on trouve des comparatifs entre les bases comme celui-ci qui me sert beaucoup:
http://fadace.developpez.com/sgbdcmp/fonctions/
[^]Re: Requete SQL Mysql / Postgresql
je vais étudier le problème . Le but n'est pas de réimplémenter pour chaque SGBD un mappage vers les fonctions.
Je pense que la solution actuelle est la plus simple. Est-ce que hibernate mappe toutes les fonctions ?