Manuel Smarty

Chapitre 17. Diagnostic des erreurs

Table des matières
Erreurs Smarty/PHP

Erreurs Smarty/PHP

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 à :

Exemple 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é.

Exemple 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.

Exemple 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 '....
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 '/...

Voir aussi le débogage, $error_reporting et trigger_error().


Remonter Remonter
Jamma Play - L'éditeur javascript - CSS - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique