OVH Cloud OVH Cloud

Template

9 réponses
Avatar
Thierry
Bonjour à tous

Je suis à le recherche d'une solution pour faire des templates dans PHP.
Je connais déjà TPLN et j'ai la doc de Smarties et de phplib. D'abord,
que pensez-vous de ces produits ? Et ensuite quelles autres solutions
sont interessantes ?

Merci bcp,
Th.

9 réponses

Avatar
Bruno Desthuilliers
Bonjour à tous

Je suis à le recherche d'une solution pour faire des templates dans PHP.


// template.php
<html>
<head>
<title><?php echo $page['head']['title'];?></title>
</head>
<body>
<h1><?php echo $page['main_title'];?></h1>
Table of content:
<ul>
<?php foreach($page['sections'] as $section) { ?>
<li>
<a href="<?php echo "#{$section['id']}";?>">
<?php echo $section['title'];?>
</a>
</li>
<?php } ?>
</ul>
<hr>
<?php foreach($page['sections'] as $section) { ?>
<h2 id="<?php echo "#{$section['id']}";?>"><?php echo
$section['title'];?></h2>
<div>
<?php echo $section['content']; ?>
</div>
<?php } ?>
</body>
</html>

// page.php
$page = Array();
$page['head'] = Array();
$page['main_title'] = $page['head']['title'] = "un template en php";
$page['sections'] = Array();
$page['sections'][] = Array('id'=>'section1', 'title'=>'Pourquoi...',
'content'= "Pourquoi faire simple quand on peut faire compliqué ?");

include('template.php');


Je connais déjà TPLN et j'ai la doc de Smarties et de phplib. D'abord,
que pensez-vous de ces produits ?


Heu... personnellement, rien.

Et ensuite quelles autres solutions
sont interessantes ?


PHP ?

Avatar
oscarima
Thierry écrivait news:428a3231$0$1243$8fcfb975
@news.wanadoo.fr:

Bonjour à tous

Je suis à le recherche d'une solution pour faire des templates dans PHP.
Je connais déjà TPLN et j'ai la doc de Smarties et de phplib. D'abord,
que pensez-vous de ces produits ? Et ensuite quelles autres solutions
sont interessantes ?

Merci bcp,
Th.


Je dirais sans hésitation XTemplates, simple (une seul classe PHP, pas
d'obligation d'apprendre un pseudo language comme Smarty) et assez
efficace.
Tu l'intègre facilement dans une application PHP.

http://sourceforge.net/projects/xtpl

Avatar
ftc
Et ensuite quelles autres solutions sont interessantes ?



PHP ?


Je suis assez d'accord avec toi, PHP se suffit à lui-même pour séparer
traitement et présentation, je n'ai jamais réellement vu la valeur
ajoutée qu'apportait une solution comme smarty ou autre à part rajouter
toute une série de traitements et donc de la lourdeur aux scripts, sans
compter l'obligation d'apprendre un nouveau langage.


Avatar
dmetzler
Personnellement, je trouve que les langages de templates sont plus
simples pour des graphistes que le php. Il mettent à disposition des
simplifications qui s'approchent plus de la problématique du
graphiste/designer que du programmeur. Pour moi l'exemple simple est le
fait de pouvoir alterner les couleurs dans un tableau. En PHP ça
demande deux lignes de code php avec la déclaration d'une variable, en
langage de template ça donne une seule commande explicite.

J'utilise Smarty et donc les templates sont compilés : il n'y donc
aucune lourdeur supplémentaire aux scripts.

Après c'est aussi une question de gout : quelqu'un qui gère son site
de A à Z ne sera pas dérangé pour faire des templates en PHP. Un
développeur qui doit intégrer une équipe de graphiste préfèrera
peut être se rapprocher de langages de templates.
Avatar
Thierry

J'utilise Smarty et donc les templates sont compilés : il n'y donc
aucune lourdeur supplémentaire aux scripts.


Que penses-tu de smarty justement. J'ai l'impression qu'il est très
puissant mais je ne sais pas trop par où commencer.

En particulier j'ai du mal à voir comment doivent s'organiser les
templates. Je voudrais organiser les templates en sous-dossiers mais
j'ai l'impression qu'il faut tous les mettre dans le meme dossier :-(

Merci bcp.

Th.

Avatar
dmetzler
De ce que j'ai vu et ce que j'utilise, il faut effectivement mettre les
templates dans un même dossier. Ca peut paraitre contraignant, mais
ça ne m'embête pas. Si ça te gène vraiment, tu n'as qu'à te faire
une norme de nomage de tes templates pour t'y retrouver.

Par exemple au lieu de modules/wiki/modifiy.tpl
tu renomme ton templates en modules_wiki_modify.tpl

Sinon, de manière plus générale et comme je l'ai déjà dis plus
haut, Smarty est plutot assez puissant et simple d'emploi. Il ne fait
que t'aider et je ne trouve pas qu'il rajoute de la lourdeur.
Avatar
oscarima
[Copie en courrier]

"" écrivait
news::

De ce que j'ai vu et ce que j'utilise, il faut effectivement mettre les
templates dans un même dossier. Ca peut paraitre contraignant, mais
ça ne m'embête pas. Si ça te gène vraiment, tu n'as qu'à te faire
une norme de nomage de tes templates pour t'y retrouver.

Par exemple au lieu de modules/wiki/modifiy.tpl
tu renomme ton templates en modules_wiki_modify.tpl

Sinon, de manière plus générale et comme je l'ai déjà dis plus
haut, Smarty est plutot assez puissant et simple d'emploi. Il ne fait
que t'aider et je ne trouve pas qu'il rajoute de la lourdeur.

Smarty est certes puissant mais j'ai constaté que très rapidement, on

effectuait des opérations au sein même de smarty. Ce qui va à l'encontre
du template. Je trouve qu'il y a une confusion entre l'utilisation d'un
template dans sa définition (séparation apparence du code) et les
multiples possibilités de smarty .On déporte finalement des opérations
pouvant être fait dans le code sur le template (ex: les fonctions PHP
ucfirst, etc ..., les conditions, les calculs possibles dans le
template.)
Il fut un temps, j'étais un défenseur de smarty (je l'utilisais avec le
Framework copix) mais la découverte de XTemplates et son utilisation
m'ont prouvé que les templates d'XTemplates sont beaucoups plus simple et
propre pour y intégrer une charte graphique que ceux de Smarty.

Voila, en espérant avoir montré qu'un retour à la simplicité est surement
une très bonne solution.

Avatar
Patrick Mevzek
Smarty est certes puissant mais j'ai constaté que très rapidement, on
effectuait des opérations au sein même de smarty. Ce qui va à l'encontre
du template. Je trouve qu'il y a une confusion entre l'utilisation d'un
template dans sa définition (séparation apparence du code) et les
multiples possibilités de smarty .On déporte finalement des opérations
pouvant être fait dans le code sur le template (ex: les fonctions PHP
ucfirst, etc ..., les conditions, les calculs possibles dans le
template.)


Il est bon de déporter certaines choses dans Smarty (alors qu'on pourrait
les faire dans le code PHP). Par exemple, mettre en majuscules à
l'affichage, c'est uniquement un problème de présentation, et il est donc
logique d'opérer cela dans la couche présentation, soit Smarty si vous
utilisez ce modèle de template. Pareil pour, par exemple, convertir un
tableau PHP, en tableau HTML.

La limite entre les deux n'est pas toujours évidente, mais un système de
template n'est pas qu'un système d'inclusion de variables.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>

Avatar
dmetzler
Je suis assez d'accord avec toi et c'est le genre de réponse que
j'allais donner. Les templates sont fait pour gérer la couche
présentation. Certains calculs peuvent être nécessaires pour faire
de la présentation. Il est cependant assez vrai que la limite n'est
pas toujours évidente à faire.

Dans le cas de la commande ucfirst, c'est pour moi totalement de la
présentation et donc, cela doit être dans la template et pas dans le
code php.

Après, je préfère pour ma part un langage de templates puissant et
m'imposer moi même mes limites que d'être limité par un langage de
templates trop simple. Comme dit Patrick, un système de templates
n'est pas qu'un système d'inclusion de variables.

Smarty permet par exemple de se définir des widgets et d'associer un
élément drop-down-list à un variable de type tableau en php. Pour
moi c'est quelque chose de puissant dans le langage qui unifie la
manière de faire des SELECT et cela à tout à fait sa place dans la
logique de présentation.