Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: 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 :
  • les exceptions
  • drivers pdo / postgresql / sqlite
  • de nouvelles méthodes
PMO s'améliore progressivement grâce aux demandes des utilisateurs. Dans ce cadre, je suis toujours à la recherche de testeurs ou de personnes qui pourraient me remonter des bugs, ou des améliorations.

NdM : PMO est un logiciel libre sous licence GPLv3

> Lire la dépêche (25 commentaires, moyenne: 1,6).  

Vous avez demandé le commentaire #876064.

Requete SQL Mysql / Postgresql

Posté par tfeserver tfe (page perso, ) le 19/10/2007 à 07:40. (lien). Évalué à 1.

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

    Posté par Code34 (page perso, ) le 19/10/2007 à 07:59. (lien). Évalué à 1.

    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

      Posté par dguihal () le 19/10/2007 à 13:25. (lien). Évalué à 5.

      Ca limite quand-même grandement l'intérêt de PMO alors

      • [^]Re: Requete SQL Mysql / Postgresql

        Posté par Code34 (page perso, ) le 19/10/2007 à 13:46. (lien). Évalué à 1.

        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

          Posté par dguihal () le 19/10/2007 à 14:14. (lien). Évalué à 3.

          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

            Posté par Code34 (page perso, ) le 19/10/2007 à 14:39. (lien). Évalué à 1.

            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

              Posté par Antoine Bonnefoy (page perso, ) le 20/10/2007 à 00:03. (lien). Évalué à 1.

              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

                Posté par Code34 (page perso, ) le 20/10/2007 à 18:10. (lien). Évalué à 1.

                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 ?