Le code XML, peu importe sa source: tapé à la main, généré à partir du MySQL, généré à partir du PHP, ou encore abstrait dans un objet PHP (un DOMDocument PHP qui représente un document XML et qui contient les données dudit XML: il n'est pas sauvé sur le disque, c'est juste un objet PHP, dans une variable). C'est l'intérêt de toute interface (décorrélé d'où ca vient de ce que c'est/où ça va).
Le code XSL, c'est le template, qui là encore vient d'où on veut: tapé à la main (le plus probable), généré par un script quelconque et sauvé sur le disque, ou encore généré à la volée (là encore, via un objet DOMDocument par exemple).
• Cela simplifie les vues car tu n'as pas de moteur de template à créer: ce moteur existe déjà, et s'appelle XSLTProcessor (pour PHP).
Tout ce que tu crées, c'est le template lui-même (le document XSL) et les données à y mettre (le document XML contenant les données).
Au fond, au lieu de tapper <% machin %> et de reposer sur une lib tierce (la tienne, ou une lib de moteur de template existante), tu te reposes sur une lib intégrée à PHP (ou autre langage), et tu tapes <xsl:value-of select="//values/machin">. L'atout étant alors la portabilité puisque XSLT existe sur de nombreux langages.
Disons qu'en un sens, je souligne juste qu'il existe un moteur de template standard (XSL) qui peut être utilisé de manière très simple quoi qu'on en dise iffle: En ce sens, c'est un peu à coté du sujet, désolé !
Pour ma part, j'aime ce système car le DOMDocument XML intermédiaire peut avoir deux destinations:
→ Ou bien il reste dans une variable PHP, et le serveur applique la transformation XSL pour envoyer le résultat HTML au client
→ Ou bien le XML est directement envoyé au client si celui-ci est compatible, et le client (le navigateur par exemple) se charge de la transformation.
Cela allège énormément la bande passante (ou bien on transfert le HTML classique, ou bien on transfère uniquement le XML contenant les données, qui est plus léger), cela permet de faire l'API et le site en même temps (si on veut l'API, il suffit de demander le XML qui existe déjà), le tout en n'utilisant qu'un seul code (le même XSL sera utilisé par le serveur ou le client) qui permet d'ailleurs de générer les sorties que l'on veut (laisser filer le XML, le transformer en HTML, en JSON,...). En plus, cela détache la vue du reste du code PHP: c'est une belle application du MVC (M: MySQL/XML, V: XSL, C: PHP).
Le code XSL, c'est le template, qui là encore vient d'où on veut: tapé à la main (le plus probable), généré par un script quelconque et sauvé sur le disque, ou encore généré à la volée (là encore, via un objet DOMDocument par exemple).
• Cela simplifie les vues car tu n'as pas de moteur de template à créer: ce moteur existe déjà, et s'appelle XSLTProcessor (pour PHP).
Tout ce que tu crées, c'est le template lui-même (le document XSL) et les données à y mettre (le document XML contenant les données).
Au fond, au lieu de tapper <% machin %> et de reposer sur une lib tierce (la tienne, ou une lib de moteur de template existante), tu te reposes sur une lib intégrée à PHP (ou autre langage), et tu tapes <xsl:value-of select="//values/machin">. L'atout étant alors la portabilité puisque XSLT existe sur de nombreux langages.
Disons qu'en un sens, je souligne juste qu'il existe un moteur de template standard (XSL) qui peut être utilisé de manière très simple quoi qu'on en dise iffle: En ce sens, c'est un peu à coté du sujet, désolé !
Pour ma part, j'aime ce système car le DOMDocument XML intermédiaire peut avoir deux destinations:
→ Ou bien il reste dans une variable PHP, et le serveur applique la transformation XSL pour envoyer le résultat HTML au client
→ Ou bien le XML est directement envoyé au client si celui-ci est compatible, et le client (le navigateur par exemple) se charge de la transformation.
Cela allège énormément la bande passante (ou bien on transfert le HTML classique, ou bien on transfère uniquement le XML contenant les données, qui est plus léger), cela permet de faire l'API et le site en même temps (si on veut l'API, il suffit de demander le XML qui existe déjà), le tout en n'utilisant qu'un seul code (le même XSL sera utilisé par le serveur ou le client) qui permet d'ailleurs de générer les sorties que l'on veut (laisser filer le XML, le transformer en HTML, en JSON,...). En plus, cela détache la vue du reste du code PHP: c'est une belle application du MVC (M: MySQL/XML, V: XSL, C: PHP).