[Moteur de Template] Comment le faire démarer

Mammouth du PHP | 1668 Messages

05 juin 2008, 07:32

Bonjour à tous, j'ai pour mission de créer un moteur de template sur-mesure pour un projet relativement important, je sais que ça ne sera pas facile, qu'il y aura tu sang à verser...

Le moteur devra se baser sur du XML, j'ai donc voulu comprendre avec Talus' TPL, basé lui aussi sur du XML, hor, il n'y a aucun parseur, est-ce normal ?
Pourquoi choisir XSLT à XML ?
Quand c'est écrit basé sur XML, cela veut-il dire que c'est une syntaxe XML-like ou pas ?

Merci par avance de vos réponses :lol:
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 2937 Messages

05 juin 2008, 11:37

XSLT est une feuille de style XML permettant de transformer du XML soit en un XML obéissant à des formats spécifiques (RSS, Atom, MathML, SMIL, SVG...) soit en XHTML soit en tout autre format.

En PHP, il existe la classe XSLTProcessor, qui permet d'effectuer la transformation d'un document XML selon les instructions de la feuille XSLT.

Mammouth du PHP | 1668 Messages

05 juin 2008, 13:08

Merci de ta réponse, mais tu ne donne pas ton opignon personnelle, qui serait interessante, pour moi en tout cas...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 2937 Messages

05 juin 2008, 15:07

Personnellement, je n'ai pas eu l'occasion d'utiliser un moteur de template, quel qu'il soit. Mais, l'approche XSLT mérite qu'on s'y intéresse, pour ce que j'ai dit précédemment. ;)

Mammouth du PHP | 1668 Messages

05 juin 2008, 17:00

Tu ne t'ais jamais servit d'un moteur de template ? personne ne t'as forcé ? Les autres aussi peuvent répondrent à mes questions...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4039 Messages

05 juin 2008, 17:09

smarty ? phptemplate ?

Le choix est vaste..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Mammouth du PHP | 1668 Messages

05 juin 2008, 17:20

En fait j'essay de comprendre comment en faire un optimisé donc j'ai commencé par Talus' TPL, je pense que son système de preg est performant et je vais m'en inspirer... Si vous en avez de ce niveau ou légèrement plus hardue je prend, je ne connais pas phptemplate, est-il bien ? complexe ou dûr (niveau code) ? rapide ou lent ? Oui la liste est longue il doit bien y en avoir 200 sur la SF...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4039 Messages

05 juin 2008, 22:25

Plus rapide que phptemplate, je doute.

Il part du constat que php est en fait déjà un langage de template à la base, et que donc il convient parfaitement pour l'utiliser en tant que tel.

Mes maigres expériences sur SF me permettent de dire que lui aussi utilise le php comme langage de template.

Ce qui est 100% sur, c'est qu'utiliser php comme langage de template sera ce qu'il y a de plus rapide. Un moteur de template avec des expression régulières doit quand même souffrir question temps de calcul..
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 4674 Messages

05 juin 2008, 23:13

Hey :),

Comme le dit bien Berzemus, un moteur de template qui se base sur des expressions régulières souffrent de beaucoup de chose.
Premièrement, on utilisera des expressions régulières, et pas des plus simples. J'avais fait un moteur de template dynamique (qui pouvait communiquer avec PHP) et crois moi, les expressions régulières étaient joyeuses. Tout ça a un coup, c'est évident.
Deuxièmement, l'utilisateur va devoir apprendre un pseudo-langage bâtard qui se situe maladroitement entre XML et PHP. Les programmeurs ne s'y retrouvent pas, les designers n'ont plus. Et je ne parle pas des variables qui doivent être pré-définies, avec documentation et convention de nommage ultra strict, nom de variables réservés, etc.
Enfin, à la base, PHP était fait pour ça non ? Pour un langage de template performant. Pourquoi vouloir changer ?

Tu as un autre choix ensuite, celui de XML et XSLT. Je ne l'ai jamais mis en place sur un serveur pour du temps réel, mais c'est très rapide. Beaucoup plus que si on utilisait des moteurs de template fait maison. De plus, XML a l'avantage de très bien se compresser et de très bien s'exporter. En effet, tu peux avoir une feuille XSLT pour transformer ton XML vers de l'HTML, mais également vers du PDF (via XSL-FO), ou du ManPage, etc. J'avais même fait ça pour une documentation Eclipse (eh oui …).
Dans l'absolu, le couple XML/XSLT est le plus intéressant. Si tu veux choisir PHP, ne prend que PHP et oublie l'invention d'un pseudo-langage bâtard :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 2937 Messages

06 juin 2008, 01:55

Le seul inconvénient de l'approche XML/XSLT est le fait de devoir connaître XSLT. Mais, vu ce qu'on en tire, c'est un inconvénient passager. ;)

Eléphant du PHP | 185 Messages

06 juin 2008, 08:29

A part qu'un truc un minimum optimisé n'effectue pas d'expression régulière à chauqe chargement o_o
Talus'TPL compile les pages en PHP une bonne fois pour toute et c'est la version compilée qui est utilisée. Le moteur s'occupe "seulement" de vérifier qu'une version plus récente n'existe pas et, le cas échéant, la compile pour l'utiliser.
Enfin, le système peut s'occuper d'une mise en cache éventuelle (mais j'ai pas c'est pas assez flexible je trouve, quoi que pour des trucs qui changent pas souvent ça le fait :) ).

Mammouth du PHP | 1668 Messages

06 juin 2008, 08:35

Alors, j'ai téléchargé phptemplate, bon c'est méchant...
Les seuls choses que mon template contiendra seront : les boucles, les conditions, et l'affichage des variable, donc ce sera extrêment léger...je veux pas avoir à apprendre une lma fonctionnement usine à gaz...
Le problème de ne pas utiliser de template c'est que les designeur viennent embêter les codeurs pour qu'il modifient le html présent dans leurs echo alors qu'ils auraient pût le faire tout seul...Après, je dois faire un système proposant plusieurs langues et plusieurs organisations...Ensuite les graphistes ont du mal avec PHP...
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 4674 Messages

06 juin 2008, 08:55

Qui te dit que tu es obligé d'écrire tes balises avec PHP ? PHP peut s'immiscer entre :
<img src="<?php echo HTML_ROOT; ?>Media/Image/…" />
ou encore
<ul>
  <li><?php echo …; ?></li>
</ul>
Pour répondre à Savageman, si tu as un système avec de petites expressions régulières, ce ne sera pas trop gourmand certes, mais il y aura toujours cette histoire de langage extra-terrestre sorti de nul part et que personne ne connaît …
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 185 Messages

06 juin 2008, 10:47

Pour répondre à Savageman, si tu as un système avec de petites expressions régulières, ce ne sera pas trop gourmand certes, mais il y aura toujours cette histoire de langage extra-terrestre sorti de nul part et que personne ne connaît …
Tu peux même avoir des expressions régulières super lourdes, c'est pas le problème, vu que c'est recompilé qu'à chaque changement... :) Du reste, c'est aussi efficace que PHP seul. ;)

Par contre +200 pour le langage extra-teresstre ! :)

Mammouth du PHP | 1668 Messages

06 juin 2008, 12:27

Bah c'est un langage adressé aux graphistes :lol:
De toutes façon tu es "obligé" d'utilisé un système de cache avec un système de templates, faut bien regagner les ressources que tu as perdu...oui pour le compilage ^^
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol