Posted by rami on 02/05/2008 at 23:36
Filed Under: PHP
Hibernate est une API Java implémentant JPA(Java Persistance API). Elle est très utilisée au sein de la communauté Java afin de persister en base de données ses objets. Travaillant dans une architecture où Java et PHP sont mélés, j'ai développé un script PHP qui permet de générer des classes PHP à partir des fichiers de mapping Hibernate.
Je me dis que ça pourrait peut-être être intéresser quelqu'un, donc voici les sources : hbm2php.zip
Le principe est d'analyser un répertoire à la recherche de fichiers de mapping(*.hbm.xml) et de générer toutes les classes PHP définies dans les fichiers. Un template de classe est utilisé contenant certains mots clés qui sont remplacés automatiquement. Le code est développé en PHP5, en objet et est donc facilement extensible.
Une interface en HTML est disponible afin d'utiliser hbm2php mais rien n'empêche de l'utiliser directement en PHP, ou d'ajouter quelques lignes afin de l'utiliser en mode console!
Un rapide diagramme de classe :

IHbmParser est l'interface définissant l'implémentatio nde l'analyse des ficheirs de mapping. IHbmCodeGenerator est chargée de récupérer le résultat de l'analyse (un tableau de hbm2php_MappingClass) afin de générer les classes PHP.