What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
Smarty possède différents types de variables. Le type de ces variables dépend du symbole qui les préfixe, ou des symboles qui les entourent.
Les variables de Smarty peuvent être soit affichées directement, soit utilisées comme arguments pour les fonctions et modificateurs, à l'intérieur d'expressions conditionnelles, etc. Pour afficher une variable, il suffit de l'entourer par des délimiteurs de telle sorte qu'elle soit la seule chose qu'ils contiennent.
La façon de la simple d'analyser les variables Smarty est d'utiliser la console de débogage.
Pour utiliser une variables assignées depuis PHP, il
faut la préfixer par le symbole dollar $
.
Les variables asignées depuis un template grâce à la fonction
{assign}
sont
manipulées de la même façon.
Example 4.2. Variables assignées
Script PHP
<?php $smarty = new Smarty; $smarty->assign('firstname', 'Doug'); $smarty->assign('lastname', 'Evans'); $smarty->assign('meetingPlace', 'New York'); $smarty->display('index.tpl'); ?>
Où index.tpl
est :
Bonjour {$firstname} {$lastname}, heureux de voir que tu es arrivé ici. <br /> {* ceci ne fonctionnera pas car $vars est sensible à la casse *} Cette semaine, le meeting est à {$meetingplace}. {* ceci fonctionnera *} Cette semaine, le meeting est à {$meetingPlace}.
Affichera :
Bienvenue Doug, heureux de voir que tu es arrivé ici. <br /> Cette semaine, le meeting est à . Cette semaine, le meeting est à New York.
Vous pouvez également utiliser des variables sous forme de tableaux associatifs assignées depuis PHP en en spécifiant la clef, après le symbole '.' (point).
Example 4.3. Accéder aux variables de tableaux associatifs
<?php $smarty->assign('Contacts', array('fax' => '555-222-9876', 'email' => 'zaphod@slartibartfast.example.com', 'phone' => array('home' => '555-444-3333', 'cell' => '555-111-1234') ) ); $smarty->display('index.tpl'); ?>
Où index.tpl
est :
{$Contacts.fax}<br /> {$Contacts.email}<br /> {* vous pouvez afficher des tableaux de tableaux *} {$Contacts.phone.home}<br /> {$Contacts.phone.cell}<br />
Affichera :
555-222-9876<br /> zaphod@slartibartfast.example.com<br /> 555-444-3333<br /> 555-111-1234<br />
Vous pouvez utiliser des tableaux indexés de la même façon que vous le faites en PHP.
Example 4.4. Accès aux tableaux grâce à l'index
<?php $smarty->assign('Contacts', array( '555-222-9876', 'zaphod@slartibartfast.example.com', array('555-444-3333', '555-111-1234') )); $smarty->display('index.tpl'); ?>
Où index.tpl
est :
{$Contacts[0]}<br /> {$Contacts[1]}<br /> {* Vous pouvez également afficher des tableaux *} {$Contacts[2][0]}<br /> {$Contacts[2][1]}<br />
Affichera :
555-222-9876<br /> zaphod@slartibartfast.example.com<br /> 555-444-3333<br /> 555-111-1234<br />
Les attributs des objets
assignés depuis PHP peuvent être utilisées en
en spécifiant le nom après le symbole ->
.
Example 4.5. Accéder aux attributs des objets
nom: {$person->name}<br /> email: {$person->email}<br />
Affichera :
nom: Zaphod Beeblebrox<br /> email: zaphod@slartibartfast.example.com<br />