Êtes-vous confronté à la création d'un site Web créé à la fois par un programmeur (probablement vous) et un concepteur ? Vous ne savez pas comment faciliter la tâche pour vous deux ? Laissez-moi vous donner la réponse : utilisez FastTemplate pour faciliter la personnalisation de votre site !
D'accord, vous vous demandez peut-être pourquoi vous devriez utiliser FastTemplates.
· Peut changer l'apparence de l'ensemble de votre site en quelques secondes · Programmation abstraite, pas de code HTML indésirable · Les concepteurs n'ont pas besoin de se soucier de tout le code "obscur" · Étonnamment rapide · Plus facile de réutiliser les anciens modèles (par rapport au formulaire normal)
FastTemplate est dérivé d'un package Perl du même nom (qui peut être trouvé sur CPAN). Vous pouvez télécharger la version PHP depuis sa page d'accueil (l'adresse de téléchargement de ce site est : http://www.phpe.net/downloads/1.shtml). Vous n'avez besoin que d'un seul des fichiers de classe (class.FastTemplate.php).
Permettez-moi d'abord d'expliquer la différence entre utiliser un modèle pour générer une page et simplement le faire écho ou l'imprimer.
Utiliser simplement la méthode echo/print est idéal pour écrire des scripts courts, mais cela ne vous aide pas avec une meilleure organisation et personnalisation. Les modèles, quant à eux, vous donnent la possibilité de créer des sites multilingues simplement en modifiant un paramètre. Ils peuvent vous pousser à vous soucier davantage de ce que vous avez à faire.
N'ayez pas peur de réfléchir avant de commencer à coder. Cela peut prendre un certain temps, mais le coût sera amorti à mesure que le projet se développera.
Alors, comment appliquer FastTemplate ? Vous devez d'abord effectuer un simple appel :
<?php $tpl=new FastTemplate ("path");
?>
Transmettez-lui un chemin vers le répertoire où sont stockés tous vos fichiers de modèles. Il renvoie un objet que vous pouvez utiliser pour le paramétrage, la génération de pages, etc.
FastTemplate repose sur l’hypothèse qu’une grande page est composée de nombreuses petites parties. Chaque partie a un nom unique. La plus petite partie consiste à l'attribuer à une chaîne de texte normale avec un nom unique. Cela peut être fait via <?php
$tpl->assign(NOM, "texte");
?>
à compléter. Désormais, si l'un de vos modèles contient {NAME}, FastTemplate connaît votre intention.
De plus, FastTemplate doit savoir comment vous souhaitez appeler votre modèle. Vous devez passer un tableau associatif (associatif
tableau) à <?php $tpl->define( ?>
Venez lui donner un indice.
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
Ces affectations donneront respectivement foo et bar des fichiers différents (nommés foo.tpl et bar.tpl).
Vous voulez maintenant que FastTemplate remplace tous les {MACROS} du modèle foo par leurs valeurs correspondantes. En lançant la commande
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
à réaliser. Cette commande attribuera le contenu du modèle "foo" à PAGECONTENT. Bien sûr, nous n’avons pas encore terminé, car la barre de modèles est la définition de la page principale et FastTemplate doit la remplacer.
Macro {PAGECONTENT}. Nous devons également attribuer une valeur à PAGETITLE, comme suit : <?php
$tpl->assign(PAGETITLE, "Test FooBar");
$tpl->parse(MAIN, "bar");
?>
Facile, n'est-ce pas ? Il ne nous reste plus qu'à l'afficher maintenant : <?php
$tpl->FastPrint(MAIN);
?>
Les trois fichiers suivants montrent des descriptions plus détaillées des exercices réels. Je ne sais pas comment vivre sans cette technologie dans la vraie vie...
Vos concepteurs seront heureux et votre patron sourira car vous pourrez faire plus en moins de temps.
bar.tpl <!-- bar.tpl -->
<HTML>
<HEAD><TITLE>Monde des fonctionnalités – {PAGETITLE}</TITLE></HEAD>
<CORPS BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGETITLE}</H1>
{CONTENU DE LA PAGE}
</CORPS>
</HTML>
foo.tpl <!-- foo.tpl -->
Visiblement, rien n'a été fait. Veuillez consulter {NAME}.
démo.php3 <?php
inclure "class.FastTemplate.php3" ;
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));
$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "Bienvenue !");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint(MAIN);
?>
Création d'un tableau entier J'ai également écrit un court exemple pour montrer comment générer un tableau entier à partir d'un modèle à une seule ligne. C'est efficace car vous n'avez toujours pas besoin de modifier directement le document HTML.
Nous créons un tableau HTML en ajoutant le contenu d'un modèle à un nom unique déjà défini. Cela peut être fait en appelant
Lorsque $tpl->parse(), ajoutez un "." avant le nom du modèle pour y parvenir. <?php
// Attribuer le contenu du modèle foo à TPL1
$tpl->parse(TPL1, "foo");
// Attache le contenu de la barre de modèle après TPL1
$tpl->parse(TPL1, ".bar");
?>
page.tpl
<HTML>
<HEAD><TITLE>Monde des fonctionnalités – {PAGE_TITLE}</TITLE></HEAD>
<CORPS BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</CORPS>
</HTML>
table.tpl
<TABLE>
<TR> <TH>nom</TH> <TH>taille</TH> </TR>
{TABLE_ROWS}
</TABLE>
table_row.tpl
<TR>
<TD>{NOM DE FICHIER</TD>
<TD>{FILESIZE}</TD>
</TR>
yad.php3
<?php
inclure "class.FastTemplate.php3" ;
fonction InitializeTemplates() {
global $tpl;
$tpl = nouveau FastTemplate( ".");
$tpl->define( array( page => "page.tpl",
table => "table.tpl",
table_row => "table_row.tpl" ) );
}
fonction ReadCurrentDirectory() {
global $tpl;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
fermé($poignée);
$tpl->parse(PAGE_CONTENT, "table");
}
fonction ImprimerPage($titre) {
global $tpl;
$tpl->assign(PAGE_TITLE, $titre);
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}
InitializeTemplates();
ReadCurrentDirectory();
Printpage( "Encore une autre démo");
?>
Discussion sur la vitesse
"Ok", vous pourriez dire : "C'est très bien. Mais cela n'affectera-t-il pas la vitesse de mon site ?
Non, votre site deviendra probablement plus rapide ?
"Une raison simple : parce qu'en tant que programmeur, vous vous souciez de la conception de votre application et de l'écriture de votre code, votre code sera plus efficace, gérant les mêmes tâches plus facilement et plus rapidement. Ainsi, vous pouvez ajouter une autre raison à la liste des raisons énumérées ci-dessus pour lesquelles vous devriez envisager d'utiliser FastTemplate dans votre projet.
Si vous souhaitez simplement convertir un site Web existant, les performances ne seront peut-être pas remarquées. Je recommande d'utiliser la mise en mémoire tampon des expressions régulières en PHP, cela aidera dans cette situation. Étant donné que FastTemplate utilise des expressions régulières pour chaque macro, chaque expression régulière ne sera compilée qu'une seule fois et l'impact sur la vitesse sera négligeable.