PHP et Smarty

PHP: Hypertext Preprocessor, plus connu sous son sigle PHP (acronyme récursif), est un langage de programmation libre, principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale.

Smarty est un moteur de template pour le langage PHP. Il est rapide et permet la gestion des caches. Il facilite la séparation entre la logique applicative et la présentation (d'un point de vue du modèle OSI). Smarty est le moteur de template de quelques applications Web telles que Prestashop.

Ainsi, nos pages PHP seront associées à des fichiers template (extension “.tpl”). Le code PHP ne contiendra aucun code pour la présentation (pas de “echo …”), de même que les templates ne modifieront aucune variable ni aucun traitement.

Note : comme précisé auparavant, Smarty permet la gestion de cache. Aussi, lorsque vous voulez relancer votre serveur après l'avoir modifié, pensez à supprimer les fichiers cache du dossier tpl_c.

exemple de code

pour le fichier php :

use Framadate\Utils; //initialise smarty

/* votre code */

$smarty->assign('variable',$monobjet);
$smarty->display('template.tpl');

pour le fichier template .tpl :

{extends file='page.tpl'}
{* ceci est un commentaire *}
{block name="header"}
    {* liste des fichiers à importer => a minima css+js *}
    <script src="{"js/app/create_poll.js"|resource}" type="text/javascript"></script>
    <link rel="stylesheet" href="{"css/app/create_poll.css"|resource}">
{/block}

{block name=main}
    <p>
       {* pour chercher la traduction de la phrase dans le fichier local correspondant à la langue *}
       {__('namespace', 'phrase.')}<br/>
    </p>

    <div class="col-sm-8">
         {if $variable.bol}
              <p> code html 1, visible si $variable.bol==true </p>
         {else}
              <p> code html 2, visible si $variable.bol==false </p>
         {/if}
         
{/block}