JeuWeb - Crée ton jeu par navigateur
Réel intérêt des templates - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Réel intérêt des templates (/showthread.php?tid=166)



Réel intérêt des templates - alfanor - 02-09-2006

Bien le bonjour (euh bonsoir plutôt lol) à tous Smile

Alors voilà, sa fait un moment que je le demande quel réel intérêt ont les templates, car ce que j'en voit c'est que sa prend plus de code (à cause des boucles qu'il faut faire deux fois si j'ai bien comprit) donc que sa ralentit et qu'en plus faut savoir en lisant où est-ce que la variable $intel est utilisé dans la page HTML.

En principe on me sors que sa aide pour coder à plusieurs, seul problème c'est que je ne voit pas en quoi sa aide vu que c'est le même code que l'on a sous les yeux sauf qu'en plus faut savoir où le code est censé se trouver dans page HTML (donc à mon goût c'est même moins pratique)

Donc voilà j'aimerais bien connaître vos avis sur cette question et peut être prendre connaissance de vos expériences passés Smile


RE: Réel intérêt des templates - orditeck - 02-09-2006

L'utilité des templaces, selon moi, est surtout le niveau de mise en place d'un noueau design par la suite.

Parce que si tu veux, par exemple, afficher la barre de naviguation, tu fais <div id="$css->naviguation">$naviguation</div> et voilà que le tout s'affiche parfaitement, du moin, sous myBB l'utilité des templates, c'est ça.


RE: Réel intérêt des templates - Ssin - 02-09-2006

Exact, je sais que moi si je veut changer de design, je vais bien galerer car je n'ai pas de template mais que du css et des pages en <div> :rip:

C'est surtout pour le changement de design, a mon humble avis.


RE: Réel intérêt des templates - Armage - 03-09-2006

Salut,

Les templates, à mon sens, permettent de séparer le code PHP de l'affichage (en (X)HTML). On sépare le traitement et la présentation.
C'est plus propre.

Ensuite, ça permet de de travailler avec un graphiste plus facilement. Tu lui files ton template, tu lui expliques les trucs qu'il ne doit pas toucher (les balises propres à ta solution de template, comme {MAVAR}) et toi tu continues de bosser sur ton code avec ton template de base.

Je ne sais pas où tu as vu cette histoire de double boucle, je ne comprens pas bien.
L'idée d'un template, c'est d'avoir un genre d'exercice à trou que ton code php remplit.

Après il existe des solutions de template plus ou moins compliquées (ou riches). J'ai tendance à privilégier les solutions simples (pear/Sigma par exemple).

En ce qui concerne le changement de design, c'est plus flou. Si on prend le zengarden (http://www.mezzoblue.com/zengarden/, et essayez plusieurs designs différents), par exemple, le template est toujours le même et ce n'est que la feuille de style qui change. Mais bon, on est pas tous des gourous en CSS.

Certaines solutions de template (smarty, flexy, tbs, tpln, ...) permettent de gérer un cache (donc de ne pas regénérer la page à chaque appel), ce qui économise des ressources et donc accélère l'affichage.

J'ai tendance à utiliser des solution de template chaque fois que je peux. Je trouve ça très pratique. Plutôt que de chercher partout dans mon code pour modifier les "echo $truc", je préfère gérer des templates bien séparés.

Bref, je conseille d'utiliser une solution de template, tu l'as compris Wink

--
Armage


RE: Réel intérêt des templates - alfanor - 03-09-2006

Pour l'histoire des boucles en faites c'est que l'on m'as dit qu'en template ont ne peut pas faire une seul boucle ce qui me semble logique, donc en gros il faut en faire une dans le code à part et une dans le code d'affichage pour pouvoir générer les balises HTML avec le php dedans (par exemple pour afficher les news il faut d'abord faire une boucle dans le code et générer un tableau multidimensionnel et ensuite il faut se reservir de se tableau dans une autre boucle situé dans la page HTML pour afficher les news, ce qui fait deux boucles piur une.)


RE: Réel intérêt des templates - Armage - 04-09-2006

Salut,

Bon je te donne un exemple (sans tester, donc pas garanti) avec ce que je connais des templates.

un extrait du template HTML
Code PHP :
<?php 
Liste des news
<table>
<
tr>
<
td>Titre</td>
<
td>News</td>
</
tr>
<!--
BEGIN news -->
<
tr>
<
td>{TITRE}</td>
<
td>{TEXTE}</td>
</
tr>
<!--
END news -->
</
table>
la balise <!-- BEGIN truc --> indique le début d'une boucle, finie par le END.

et dans le code PHP
Code PHP :
<?php 
// ...
$sql = "select titre, texte from news" ;
// on fait la requête
$result = sql_query($sql, $db) ;
// ici, j'ai mon while
while ($row = $result->fetchRow(DB_FETCHMODE_ASSOC)) {
$tpl->setVariable(array(
'TITRE' => $row['titre'],
'TEXTE' => $row['texte'])) ;
$tpl->parse('news') ; // <--- ligne magique qui construit la boucle html
// 'news', c'est le nom que j'ai mis après le BEGIN dans mon template
}
// ...
// on affiche le résultat de la page, une fois parsée
$tpl->show() ;

$tpl, c'est le nom de mon objet contenant le template, que j'initialise ailleurs avec un truc genre $tpl = new Template() ...

Et voilà, c'est tout. Suivant ta solution de template, tu auras différentes manières d'indiquer l'utilisation de boucles mais tu constates dans mon exemple que je n'ai codé qu'une boucle (bien sur, quelque part, dans le code de ma solution de template, il doit y avoir d'autres boucles, mais en ce qui me concerne directement, je n'ai programmé qu'une boucle).

--
Armage


RE: Réel intérêt des templates - naholyr - 04-09-2006

Bien sûr que les templates font perdre en performances : c'est une surcouche, donc forcément il y a perte de perfs.
Bien sûr que les templates ça augmente potentiellement la quantité de code : template + code > tambouille de html/php en terme de quantité de lignes.

Maintenant je t'encourage à faire deux versions d'un même script, dont l'un utilisera des templates, puis à les relire tous les deux dans quelques semaines. Tu comprendras alors l'intérêt de clarifier le code en séparant présentation et moteur Wink

C'est uniquement une question :
- d'évolutivité (facile de modifier le design à l'avenir, sans avoir à modifier le coeur du programme).
- de confort (de relecture, mais également de codage quand on en prend l'habitude).
- de pérennité (une tambouille est inmaintenable, et donc a une durée de vie ultra-courte).



RE: Réel intérêt des templates - pascal - 04-09-2006

comme le disait naholyr, les templates sont un élément de conception / d'architecture: avec un template, le code est plus lisible que sans.

J'utilise des templates, à ma manière, dans mon code:
_ des classes / fonctions pour effectuer toutes les actions ( enregistrement en base de données, tests complexes, traitements sur les données de formulaire... )
_ un template ( html + if / echo en PHP ) pour l'affichage
_ un script détectant dans quel cas on se trouve ( formulaire envoyé? formulaire à afficher? ...) , utilisant les classes pour effectuer les traitements et le template pour l'affichage.

ça me donne un code:
_ plus lisible qu'un gros paté mélangeant le tout,
_ plus simple à débugguer ( tests systèmatique de chaque classe enregistré dans un fichier et retestable à l'infini ) car découpé en 3 parties:
* classes / fonctions ( PHP en interaction avec la base de données )
* le script ( la logique du processus, d'un point de vue global )
* la page / formulaire ( html + if / echo )
_ donc plus évolutif

en résumé, même si on n'utilise pas une solution de template, il faut au minimum séparer l'affichage du script et des traitements.

A+

Pascal