Smarty est un système de templates utilisable à partir de PHP
4.0.6.
Celui-ci permet de découper la partie métier de la partie
présentation de façon simplifiée. Cela permet ainsi une plus grande
flexibilité du programme et une meilleure gestion du projet en
équipe.
C'est un outil simple à prendre en main qui s'adresse autant à des
utilisateurs avancés qu'à des novices en PHP.
-Prérequis
-Installation
-Implémentation
-Conclusion
Pour suivre cet article il faudra une version de PHP supérieure à
4.0.6.
L'IDE netbean en version 7 ou supérieure.
Un serveur compatible PHP, ici l'exemple est effectué avec
Wamp.
Téléchargez le zip Smarty :
https://github.com/smarty-php/smarty/releases
Dézippez le projet, dans celui-ci seul le dossier "libs" nous
intérressera.
Sélectionnez ce dossier, collez le à la racine du projet. Renommez
le par exemple en "tpl".
Créez deux dossiers de stockage des fichiers tpl à la racine du
répertoire contenant les fichiers PHP nommés "templates" et
"templates_c".
Ces deux répertoires contiendront respectivement les fichiers
templates et les fichiers compilés.
Vous devriez avoir cette architecture de projet :
Créez un nouveau fichier tpl dans votre dossier "templates" :
Dans votre fichier index appelez la classe smarty dans un require
:
require("tpl/smarty.class.php");
Instanciez un objet smarty :
$smarty = new Smarty();
Pour afficher votre template il suffit de l'appeler comme
ci-dessous:
$smarty->display("newSmartyTemplate.tpl");
Le fichier index.php doit donc ressembler a celui-ci :
Vous noterez la ligne 12 avec un assign. Cette ligne permet
d'assigner des données à une variable utilisable dans le tpl appelé. Ici
Hello sera stocké dans une variable nommée DATA.
Dans le tpl copier coller un code html d'index classique. Smarty
permet d'utiliser du code PHP directement dans le fichier tpl. Ce qui
permet de simplifier l'affichage et la présentation. Pour utiliser du code
PHP il faut l'encadrer entre {} , par exemple une instruction if/else : {if
test} {else} {/if}
Exemple de tpl :
Ici nous afficherons simplement la valeur de DATA si la variable a
été initialisée en amont sinon un message auto-généré.
Les résultats obtenus sont les suivants :
De nombreuses autres instructions seront bien sûr possible tel que
des foreach , débugger avec des var_dump , appeler des tpl directement
depuis le tpl parent.. Et bien d'autres fonctionnalités. Référez vous à la
documentation smarty pour plus de détails :
http://www.smarty.net/documentation
Smarty est un outil simple à mettre en place. Il va permettre de
gagner en productivité en ajoutant une meilleure structuration du projet. Il
va aussi permettre de découper proprement la partie contenu de la forme.
Son utilisation est accessible aux débutants et permet ainsi aux
novices PHP de l'utiliser.