OVH Cloud OVH Cloud

Besoin de conseils sur la creation d'un m oteur de templates

6 réponses
Avatar
Yann PIQUET
Bonjour,

Je suis actuellement en plein questionnement sur la création d'un moteur
de template.

En effet, je travaille en ce moment à la création d'une application
redistribué de CMS, sur laquel j'utilise pour l'instant le moteur de
template de la phplib. Le probleme est que ce moteur, bien qu'il ait été
retouché par l'un des membres de notre projet, est bien trop lourd pour
l'utilisation qu'en fait notre systeme.

Aussi j'ai décidé de coder mon propre systeme de template, de manière à
n'y inclure que ce dont j'ai réellement besoin. Mais si je n'ai aucun
probleme pour le traitement de variables simples dans le template, et
pour le chargement d'un fichier de template, autant je n'ai strictement
aucune idée de la maniere dont je pourrais réaliser un systeme de blocs.

J'ai essayé de comprendre celui de la phplib, mais les expressions
regulieres perl ne sont pas mon fort :-/ donc si quelqu'un avait un ou
deux liens que je puisse cliquer, ca m'arrangerait beaucoup...

Merci d'avance,

Aramiil

6 réponses

Avatar
Gabriel
bonsoir,

Faites quelques recherches dans les archives de ce groupe à propos des
moteurs de templates en php.

Pour ma part : j'avais développé le mien avec des expressions
régulières, je chargeais le template en mémoire et je faisais un
chercher-remplacer.

Depuis, j'ai tout laissé tomber au profit d'une solution bcp plus simple :

<input value="<? echo $modele['nom']?>">

J'ai conscience des moteurs de templates, de la nécessité de séparer les
traitements en architecture n-tiers etc...

Mais pourtant en php, je vois plus l'intérêt.
En j2EE, j'utilise Struts, c'est différent :)

bonne lecture des archives, car le sujet est récurrent ;)
Avatar
Yann PIQUET
bonsoir,



Bonjour, et merci de votre réponse

Faites quelques recherches dans les archives de ce groupe à propos des
moteurs de templates en php.



Où puis-je les trouver? Car une recherche sur groups.google avec les
mots-clés "templates", "moteur de template", "création de moteur de
template" ou "création de template" me donne uniquement des resultats
portant sur le choix d'un moteur de template existant (généralement
smarty), mais jamais sur la conception à partir de zéro d'un tel
moteur... Me serais-je trompé de mot-clé?

Pour ma part : j'avais développé le mien avec des expressions
régulières, je chargeais le template en mémoire et je faisais un
chercher-remplacer.



C'est effectivement ce que j'utilise, mais je ne sais pas comment
adapter ceci aux blocs, pour pouvoir utiliser des boucles

Depuis, j'ai tout laissé tomber au profit d'une solution bcp plus simple :

<input value="<? echo $modele['nom']?>">

J'ai conscience des moteurs de templates, de la nécessité de séparer les
traitements en architecture n-tiers etc...


Le besoin ici se situe à un niveau different: le script est dédié à un
public de webmaster amateurs, suffisement connaisseurs néanmoins pour
savoir ce qu'est un ftp, et savoir configurer des scripts simples comme
phpBB ou FSB (avec qui nous sommes en partenariat). Or beaucoup d'entre
eux connaissent les bases du HTML, et donc veulent et savent modifier un
.tpl. La présence des variables, boucles, etc... dans le .tpl en .php
pose donc un probleme car elle necessite au client potentiel ou aux
personnes interessées par le developpement de templates pour ce script
et n'ayant aucune connaissance en php l'apprentissage des bases et des
fautes de syntaxe à ne pas commettre. Tandis qu'un moteur de template
reprennant exterieurement les principe de la phplib (ou des principes
proches, <!-- DEBUT --> et {VARIABLE} par exemple) permettrais de ne pas
avoir à faire cet apprentissage.


[...]



Bonne journée,

Aramiil

Avatar
John GALLET
Bonjour,

<input value="<? echo $modele['nom']?>">
J'ai conscience des moteurs de templates, de la nécessité de séparer les
traitements en architecture n-tiers etc...
Mais pourtant en php, je vois plus l'intérêt.


Normal parce que **c'est** une implémentation de séparation
code-présentation.

PHP **est** un moteur de template à lui tout seul.

a++;
JG

Avatar
Bruno Desthuilliers
(snip)
La présence des variables, boucles, etc... dans le .tpl en .php
pose donc un probleme car elle necessite au client potentiel ou aux
personnes interessées par le developpement de templates pour ce script
et n'ayant aucune connaissance en php l'apprentissage des bases et des
fautes de syntaxe à ne pas commettre.


Le problème que ça pose est surtout celui de la sécurité.

Tandis qu'un moteur de template
reprennant exterieurement les principe de la phplib (ou des principes
proches, <!-- DEBUT --> et {VARIABLE} par exemple) permettrais de ne pas
avoir à faire cet apprentissage.


Mais ne permet pas non plus de gérer les répétitions et les
conditionnelles...

Un système qui fonctionne bien est celui des 'squelettes' SPIP.
L'expérience prouve que beaucoup de non-programmeurs arrivent à
l'utiliser - et à en tirer des choses intéressantes. Mais ce n'est pas
spécialement un système simple et léger ('compilateur', piles, caches
etc...).

Un autre système intéressant AMHA est TAL (Template Attribute Language),
dont l'implémentation de référence est celle de Zope (Zope Page
Template), mais dont il existe une implémentation en PHP:
http://phptal.motion-twin.com/introduction.html

Je n'ai jamais testé la version PHP, mais j'utilise quotidiennement les
ZPT sous Zope ainsi que dans une autre implémentation Python
(SimpleTAL), et c'est pour le moment le meilleurs rapport
simplicité/utilisabilité/intégration HTML que j'ai trouvé.

Avatar
Thierry
Bonjour,

Je suis actuellement en plein questionnement sur la création d'un moteur
de template.

En effet, je travaille en ce moment à la création d'une application
redistribué de CMS, sur laquel j'utilise pour l'instant le moteur de
template de la phplib. Le probleme est que ce moteur, bien qu'il ait été
retouché par l'un des membres de notre projet, est bien trop lourd pour
l'utilisation qu'en fait notre systeme.

Aussi j'ai décidé de coder mon propre systeme de template, de manière à
n'y inclure que ce dont j'ai réellement besoin. Mais si je n'ai aucun
probleme pour le traitement de variables simples dans le template, et
pour le chargement d'un fichier de template, autant je n'ai strictement
aucune idée de la maniere dont je pourrais réaliser un systeme de blocs.

J'ai essayé de comprendre celui de la phplib, mais les expressions
regulieres perl ne sont pas mon fort :-/ donc si quelqu'un avait un ou
deux liens que je puisse cliquer, ca m'arrangerait beaucoup...

Merci d'avance,

Aramiil



Je te conseille de regarder TPLN (chez sourceforge). Ce n'est pas le
pluys performant mais leur forum est nikel et les responsables sont
ouvert. En plus le code est relativement propre...

Mais avant de créer ton moteur, je pense qu'il faut deja savoir de quoi
tu as besoin... Perso j'en ai utilisé plusieurs (dont smarties, phplib,
vtemplate et tpln) et j'ai jamais trouvé mon bonheur à 100% :-( je
precise que je suis aussi de J2EE (struts, jstl, jsf,etc )

Avatar
PIQUET Yann
Merci à tous pour vos conseils, j'ai finalement réussi à créer ce que je
souhaitais obtenir.

Bonne soirée,

Aramiil