Doctrine, DomElement and XSL transformations

Réaliser une application web en php, en utilisant Doctrine (ORM), DomElement (PHP) et les transformations XSL…

I. Object Relationnal Mapper

Un ORM permet d’utiliser des classes « mappées » aux tables d’une base de données, afin de rentre transparente, la persistence des données.

La programmation orientée objet remplace donc, en partie, la programmation de requetes SQL et rend intuitive la gestion du traitement des données.

En outre, cela permet également – et non sans intérêt – de s’affranchir du type de la source de données ( MySQL, MsSQLServer, SQLite, …etc).

Quelques ORM en PHP, open-source : Doctrine, Propel.

Une fois la persistance de données via la programmation objet en place, il devient aisé de récupérer de la données depuis un serveur SQL. Maintenant, il reste à afficher ces informations.

II. XML et DomElement

Utiliser le package DomElement afin de générer un document XML en mémoire permet de garder le contrôle, du début à la fin, sur la sortie (pouvoir modifier un noeud xml à n’importe quel moment – à condition d’en avoir gardé une référence, bien sùr).

Nous avons maintenant notre source de données formatée en XML, prêt pour l’affichage.

III. XSLTProcessor

Cette classe, XSLTProcessor, permet d’effectuer la transformation d’un fichier XML en HTML (ou n’importe quel autre format) sur le serveur. Le résultat ainsi obtenu, est renvoyé directement au naviguateur client.

Conclusions

MVC

Ce modèle permet un découplage énorme entre

  • Les données (ORM),
  • un contrôleur, qui prépare les données à présenter pour l’utilisateur (XML),
  • l’affichage (XSL).

Nous avons donc un MVC particulièrement efficace.

ORM

Un ORM permet de rendre transparent pour le développeur l’utilisation d’une base de données. Ce qui permet d’obtenir un code propre et lisible (pas de requetes SQL dans le code – ou très peu), de limiter les erreurs et surtout de travailler avec la programmation orientée objet.

Conformité W3C

La source ainsi produite ne peut pas générer un document non-valide du fait que si le fichier XML ou XSL n’est pas bien formé, DomElement et XSLTProcessor  retourneront une erreur.

Finalement

voici donc une utilisation puissante des outils libres à la portée de tous.