Get Smarty

Donate

Paypal

Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Chapter 17. Решение проблем

Table of Contents

Ошибки Smarty/PHP

Ошибки Smarty/PHP

Smarty может ловить многие ошибки, например отсутствующие атрибуты тэгов или недопустимые имена переменных. Если это произойдет, вы увидите ошибку наподобие следующей:

Example 17.1. Ошибка 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 покажет вам имя шаблона, номер строки и ошибку. Далее сообщение об ошибке состоит из фактического номера строки в классе Smarty, где возникла ошибка.

Есть определенные ошибки, которые не может поймать Smarty, например отсутствующие закрывающие тэги. Такие ошибки обычно приводят к ошибкам разбора PHP на этапе компиляции.

Example 17.2. Ошибки разбора PHP


Parse error: parse error in /path/to/smarty/templates_c/index.tpl.php on line 75

   

Когда вы встречаетесь с ошибкой разбора PHP, номер строки, в которой допущена ошибка, будет соответствовать скомпилированному PHP-скрипту, а НЕ самому шаблону. Обычно вы можете посмотреть на шаблон и увидить синтаксическую ошибку. Типичные ошибки: отсутствующие закрывающие тэги для {if}{/if} или {section}{/section}, или синтаксис логики внутри тэга {if}. Если вы не можете найти ошибку, вам может понадобиться открыть скомпилированный PHP-файл и перейти к номеру строки чтобы выяснить, в чём заключается ошибка в шаблоне.

Example 17.3. Другие частые ошибки


Warning: Smarty error: unable to read resource: "index.tpl" in...
or
Warning: Smarty error: unable to read resource: "site.conf" in...

   

  • Значение $template_dir неверно, эта директория не существует или файл index.tpl не найден в директории templates/.

  • В шаблоне присутствует функция {config_load} (либо была вызвана функция config_load()) и значение $config_dir неверно, эта директория не существует или файл site.conf находится за пределами этой директории.


Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist,
or is not a directory...

   
  • Переменная $compile_dir установлена неверно, эта директория не существует или templates_c является файлом, а не директорией.


Fatal error: Smarty error: unable to write to $compile_dir '....

   
  • У веб сервера нет прав на запись в директорию $compile_dir. Смотрите конец страницы Базовая установка для получения информации о правах доступа.


Fatal error: Smarty error: the $cache_dir 'cache' does not exist,
or is not a directory. in /..

   
  • Это означает, что параметр $caching включен, но параметр $cache_dir установлен неправильно, эта директория не существует или cache/ является файлом, а не директорией.


Fatal error: Smarty error: unable to write to $cache_dir '/...

   
  • Это означает, что параметр $caching включен, но у веб сервера нет прав на запись в директорию $cache_dir. Смотрите конец страницы Базовая установка для получения информации о правах доступа.


См. также Отладочная консоль, $error_reporting и trigger_error().

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors