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.
@twivins