La transformation est terminée, et ce document HTML est prêt à être affiché dans n’importe quel navigateur.. En résumé, XSLT est un langage qui permet de produire un document XML par ass
Trang 18.4 Mise en forme de documents avec XSLT 353
<b>Michael Madsen</b>: Budd / Sidewinder<br/>
<b>Daryl Hannah</b>: Elle Driver<br/>
<h3>R´ esum´ e</h3>
Au cours d’une c´ er´ emonie de mariage en plein d´ esert,
</body>
</html>
La transformation est terminée, et ce document HTML est prêt à être affiché dans n’importe quel navigateur En résumé, XSLT est un langage qui permet de produire un document XML par assemblage de fragments contenus dans des règles, et en incluant dans ces fragments des parties extraites d’un document source Voyons maintenant comment appliquer une telle transformation avec PHP
8.4.2 Application d’un programme XSLT avec PHP
On peut envisager deux possibilités pour effectuer la transformation XSLT : côté serveur ou côté client Pour le côté serveur, PHP fournit une interface fonctionnelle avec le processeur XSLT Comme pour SAX, cette interface permet de créer un pro-cesseur, et d’appliquer un programme XSLT à un document source Le programme, le document source et le document résultat peuvent être soit des chaînes de caractères, soit des fichiers
Ce processeur n’est pas toujours installé, et la transformation côté client est plus facile à metre en œuvre Elle consiste à transmettre le document XML et le programme XSLT au navigateur et à laisser ce dernier effectuer la transformation
Ce n’est possible qu’avec un navigateur doté d’un processeur XSLT, comme les versions raisonnablement récentes de Firefox, Safari ou Internet Explorer Il suffit alors d’ajouter une instruction de traitement
<?xml-stylesheet href=’programme ’ type=’text/xsl’?>
dans le prologue du document XML pour indiquer au processeur XSLT le programme
à appliquer
/ / On e n v o i e l ’ en−t ê t e HTTP, e t l e p r o l o g u e du document XML
Header ( " Content−t y p e : t e x t / xml " ) ;
echo " <? xml v e r s i o n = \ " 1 0 \ " e n c o d i n g =\" i s o−8859−1\"?>\n\n " ; / / M i s e e n f o r m e s e l o n l e c h o i x d e l ’ u t i l i s a t e u r
i f ( $_POST [ ’ f o r m a t ’ ] == "XML" ) {
/ / On s o r t l e XML b r u t
echo " < F i l m s >\n$document < / F i l m s >\n " ;
}
e l s e {
/ / On a p p l i q u e u n e t r a n s f o r m a t i o n XSLT I l s u f f i t d ’ a j o u t e r / / u n e i n s t r u c t i o n p o u r q u e l e n a v i g a t e u r e n t i e n n e c o m p t e / / e t a p p l i q u e l a t r a n s f o r m a t i o n F i l m x s l
Trang 2354 Chapitre 8 XML
echo " <? xml−s t y l e s h e e t h r e f = ’ / x s l / Film x s l ’ t y p e = ’ t e x t / x s l
’? >\ n "
" < F i l m s >\n$document < / F i l m s >\n " ; ; }
On voit que l’instruction de traitement est placée entre le prologue et le corps du document quand on a demandé un export en HTML Dans ce cas, le document XML
et le programme XSLT sont transmis au navigateur qui effectue la transformation
et affiche directement le résultat comme le montre la figure 8.2 On utilise PHP uniquement pour la production du document XML, et la mise en forme (ici HTML) est obtenue avec XSLT Il serait très facile de créer de nouveaux programmes XSLT applicables au même document pour produire, par exemple une version pour des téléphones mobiles, une version VoiceXML (sortie vocale), une version RSS, etc Notez que les personnes qui réalisent ces programmes XSLT n’ont aucun besoin de connaître ni la structure de la base (ou même son existence), ni PHP, ni l’architecture
du site
Figure 8.2 — Résultat de la transformation XSLT
L’intérêt de recourir à cette solution est essentiellement de pouvoir choisir dyna-miquement entre plusieurs programmes XSLT au moment de la publication des données Cela peut permettre de personnaliser la présentation en fonction du navi-gateur, du média (ordinateur, téléphone, PDA, ), ou des souhaits d’un utilisateur particulier Imaginons par exemple un site qui gère un catalogue de produits (disons, des livres), et plusieurs fournisseurs, disposant chacun de leur propre site web, et souhaitant y publier avec leurs propres normes graphiques une partie de ce catalogue
La programmation MySQL/PHP permet facilement d’extraire les données de la base, au format XML, et il reste à créer autant de programmes XSLT qu’il y a de présentations possibles
Trang 3TROISIÈME PARTIE
Compléments
Trang 5au Zend Framework
9
Ce chapitre est une introduction au Zend Framework (abrégé en ZF), un ensemble de composants logiciels développé en Open Source (sous licence Free BSD) à l’initiative
de la société Zend qui distribue l’interpréteur PHP et commercialise de nombreux outils pour la réalisation d’applications web professionnelles
Le ZF est un ensemble extrêmement riche de classes orientées-objet dont l’ambi-tion est de fournir un support au développement d’applical’ambi-tions PHP complexes, dans tous les domaines Nous allons nous intéresser essentiellement ici à la réalisation
d’applications basées sur MySQL, en revisitant notamment le pattern MVC décrit
dans le chapitre 6, tel qu’il est implanté dans le ZF
Le ZF est un projet relativement récent (2005) qui se développe à grande échelle
Comme tous les outils de ce type (par exemple le framework STRUTS pour Java),
sa prise en main peut s’avérer délicate car on est submergé de concepts qui peuvent paraître barbares au néophyte Si vous avez bien assimilé le MVC « léger » présenté précédemment et les principes de la programmation objet, l’introduction qui suit doit vous éviter la phase la plus pénible de l’apprentissage L’effort en vaut la peine car, pour des projets importants, l’utilisation d’un framework facilite bien les choses
Le choix de présenter le ZF ne doit d’ailleurs pas s’interpréter comme un jugement
de valeur Il existe d’autres frameworks très recommandables (pour n’en citer qu’un,
Symphony semble très apprécié), mais vous devez à l’issue de la lecture être capable
de vous débrouiller pour explorer d’autres pistes
REMARQUE –J’ai pris pour point de départ de cette introduction quelques documents trouvés sur le Web Je remercie les auteurs, parmi lesquels Julien Pauli, qui a déposé quelques
précieux tutoriaux sur le site Developpez.com.
Le chapitre s’appuie sur la présentation d’une application, appelée ZSCOPE, qui utilise ponctuellement la base MySQL sur les films, développée dans les chapitres