PhpMyObject 0.06 vient de sortir

Posté par  (site web personnel) . Modéré par Jaimé Ragnagna.
Étiquettes : aucune
0
16
juil.
2007
PHP
PMO est un Object-Relationnal Mapping sous licence GPLv3 développé en PHP. Un ORM est une couche d’abstraction entre la base de donnée et l’application qui permet de convertir les données en objets (et vice-versa).

PMO s'adresse donc à tous les développeurs qui veulent faire de l'orienté objet en PHP5. Quelques mots sur le fonctionnement :
PMO découpe les résultats renvoyés par le SGBD et les convertit en objets. Il renvoie une map d’objets que le développeur peut manipuler grâce à des méthodes. Cela apporte un gain de temps significatif car le développeur n'a plus besoin de coder une classe utilisateur s'il a une table utilisateur, une classe commande, s'il a une classe commande, etc. PMO va créer dynamiquement ces classes et les mettre à disposition de l'application.

Il existe plusieurs ORM (Hibernate pour Java, Active Record qui a grandement contribué au succès de Ruby on Rails). PMO vient donc agrandir la famille des ORM PHP (Dropel, Doctrine, EZPDO). Il se distingue sur les points suivants :
  • PMO est une véritable API
  • PMO est simple à mettre en ½uvre (pas besoin de déclarer le schéma de la base de donnée dans des fichiers XML)
  • PMO gère les relations entre objets, et l’unicité des objets
  • PMO gère le polymorphisme et permet d’utiliser des classes étendues
Le projet est jeune. Un problème se pose pour centraliser, évaluer les propositions d’évolutions de l’API, et les bugs reports. Toute aide est donc la bienvenue.

Je vous invite à consulter le site officiel qui contient des exemples de code et de plus amples informations sur le fonctionnement de PMO.

Aller plus loin

  • # ORM pour Erlang

    Posté par  (site web personnel) . Évalué à 2.

    J'ai découvert il y a peu les étonnantes capacités de l'Erlang.

    Etant developpeur utilisant Java/Spring/Hibernate/DWR/Tapestry5/Struts côté serveur, j'ai trouvé Yaws ( http://yaws.hyber.org/ ) en serveur web/d'application (utilisable comme un apache haute disponibilité), Erlyweb ( http://erlyweb.org/ , http://erlyweb.org/doc/ ) en framework fournissant notamment ErlyDB ( http://erlyweb.org/doc/erlydb.html ) pour l'ORM.

    En un sens, et vu la nouvelle évolution des processeurs ( multiplication des cores ) il va falloir changer notre façon de programmer, et le langage qui me parait le plus indiqué pour le faire est l'Erlang puisqu'il est fait pour permettre de passer de 1 à N core avec quasiment un facteur N d'amélioration de performances (les cores peuvent partager la memoire ou non aussi, ce n'est pas un problème à gérer côté développeur... Alors qu'avec les autre langages, proposant des threads dans une memoire partagee... ça pose plus de problèmes).

    J'avoue ne pas avoir encore beaucoup pratiqué, mais du coup après avoir vu tout ça je trouve dommage que tu n'ai pas mis l'Erlang/Yaws/ErlyWeb parmis les alternatives :)

    Sinon bon courage pour le de votre ORM, mon experience d'hibernate me fait dire que ça m'est devenu indispensable ;)
    • [^] # Re: ORM pour Erlang

      Posté par  (site web personnel) . Évalué à 2.

      à propos d'ORM, d'ailleurs c'est dommage que personne n'ait fait de news (juste un journal) à propos de Storm, l'ORM tout neuf de Canonical, comparable à sqlalchemy. J'ai parcouru le tutoriel et ça m'a l'air très bien fait. https://storm.canonical.com/FrontPage
      (oui je sais, désolé, c'est une news php)
      • [^] # Re: ORM pour Erlang

        Posté par  (site web personnel) . Évalué à 5.

        >>> c'est dommage que personne n'ait fait de news (juste un journal) à propos de Storm

        Pourquoi est-ce que tu ne prend pas un peu de temps pour rédiger une belle news alors ?
      • [^] # Re: ORM pour Erlang

        Posté par  . Évalué à 3.

        à propos d'ORM, d'ailleurs c'est dommage que personne n'ait fait de news (juste un journal) à propos de Storm, l'ORM tout neuf de Canonical, comparable à sqlalchemy. J'ai parcouru le tutoriel et ça m'a l'air très bien fait. https://storm.canonical.com/FrontPage

        J'ai regardé le tutoriel, et même si l'API a l'air assez sympa, ça semble pour l'instant loin de SQLAlchemy. Par exemple la création de tables n'est pas comprise dans l'abstraction de DB, résultat on doit taper des "CREATE TABLE" à la main avec toutes les incompatibilités inter-DB que ça génère.

        Par contre l'intégration Twisted, si elle est faite correctement peut faire la différence par rapport à SQLAlchemy qui n'a rien de satisfaisant dans le domaine.
  • # Newsgroup

    Posté par  (site web personnel) . Évalué à 1.

    Pour ceux qui souhaitent de près ou de loin participer au projet ou soumettre des idées d'évolutions, un newsgroup a été crée ici:

    http://groups.google.fr/group/pmo-dev?hl=fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.