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 peut identifier de nombreuses erreurs comme des attributs de balises manquants ou de noms de variables malformés. Dans ce cas-là, vous verrez apparaître une erreur semblable à :
Example 17.1. erreurs Smarty
Warning: Smarty: [in index.tpl line 4]: syntax error: unknown tag - '%blah' in /path/to/smarty/Smarty.class.php on line 1041 Fatal error: Smarty: [in index.tpl line 28]: syntax error: missing section name in /path/to/smarty/Smarty.class.php on line 1041
Smarty vous indique le nom du template, le numéro de la ligne et l'erreur. Après cela, vous pouvez connaître le numéro de ligne où il y a eu erreur dans la définition de la classe Smarty.
Il y a certaines erreurs que Smarty ne peut pas détecter, comme les balises fermantes manquantes. Ce type d'erreurs est la plupart du temps repéré dans la phase de compilation PHP du template compilé.
Example 17.2. Erreur d'analyse PHP
Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75
Quand vous rencontrez une erreur d'analyse PHP, le numéro de la ligne
indiqué est celui du fichier PHP compilé et non du template. Vous pouvez alors
regarder le template et détecter l'erreur. Voici quelques erreurs fréquentes :
balises fermantes pour
{if}{/if}
ou
{section}{/section}
manquantes, ou syntaxe logique incorrecte dans une instruction {if}
.
Si vous ne trouvez pas l'erreur, vous devrez alors ouvrir le fichier PHP compilé et aller à la
ligne correspondante pour trouver d'où vient l'erreur.
Example 17.3. Autres erreurs communes
Warning: Smarty error: unable to read resource: "index.tpl" in... ou Warning: Smarty error: unable to read resource: "site.conf" in...
Le dossier
$template_dir
est incorrect, n'existe pas ou le fichier
the file index.tpl
n'est pas dans le dossier
templates/
.
Une fonction
{config_load}
est dans un template (ou
config_load()
a été appelé) et soit
$config_dir
est incohérent, n'existe pas, ou
site.conf
n'est pas dans le dossier.
Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory...
Soit le dossier
$compile_dir
n'est pas correctement défini, le dossier n'existe pas, ou
templates_c
est un fichier et non un dossier.
Fatal error: Smarty error: unable to write to $compile_dir '....
Le dossier $compile_dir
n'est pas accessible en écriture par le serveur web. Voir le bas
de la page sur l'installation de
Smarty pour les permissions.
Fatal error: Smarty error: the $cache_dir 'cache' does not exist, or is not a directory. in /..
Cela signifie que
$caching
est activé et soit
le dossier
$cache_dir
n'est pas correctement défini, le dossier n'existe pas, ou
cache
est un fichier et non un dossier.
Fatal error: Smarty error: unable to write to $cache_dir '/...
Cela signifie que
$caching
est activé et
le dossier
$cache_dir
n'est pas accessible en écriture par le serveur web. Voir le bas
de la page sur l'installation de
Smarty pour les permissions.
Voir aussi
le débogage,
$error_reporting
et
trigger_error()
.