Ошибки Smarty/PHP
Smarty может ловить многие ошибки, например отсутствующие атрибуты
тэгов или недопустимые имена переменных. Если это произойдет, вы увидите
ошибку наподобие следующей:
Пример 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 на этапе компиляции.
Пример 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-файл и перейти к номеру строки чтобы выяснить,
в ч╦м заключается ошибка в шаблоне.
Пример 17-3. Other common errors 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.
Смотрите конец страницы
Базовая установка
для получения информации о правах доступа.
|
См. также
debugging,
$error_reporting и
trigger_error().