Документация Smarty


Глава 17. Решение проблем

Содержание
Ошибки Smarty/PHP

Ошибки 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. Другие частые ошибки

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().

SAPE все усложнил?

MainLink - простая и прибыльная продажа ссылок!

Последние поступления:

Размещена 10 августа 2020 года

Я по ТВ видел, что через 10 лет мы будем жить лучше, чем в Германии...
Я не понял, что это они с Германией сделать хотят?!

читать далее…

ТехЗадание на Землю

Размещена 14 марта 2018 года

Пpоект Genesis (из коpпоpативной пеpеписки)

читать далее…

Шпаргалка по работе с Vim

Размещена 05 декабря 2017 года

Vim довольно мощный редактор, но работа с ним не всегда наглядна.
Например если нужно отредактировать какой-то файл например при помощи crontab, без знания специфики работы с viv никак.

читать далее…

Ошибка: Error: Cannot find a valid baseurl for repo

Размещена 13 сентабря 2017 года

Если возникает ошибка на centos 5 вида
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. Invalid release/

читать далее…

Linux Optimization

Размещена 30 июля 2012 года

Prelink

читать далее…