Настройка шаблонов для 500 ошибки и unavailable

Symfony framework

Автор: Александр Степанов

5 февр. 2013 г., 10:30:05  1374


Эти страницы не находятся в дефолтном модуле, так как они вызываются, когда symfony срабатывает не так как задумано. Эти шаблоны можно найти в $sf_symfony_lib_dir/exception/data/ директории:

  • error.html.php: страничка вываливается, когда на сервере происходит внутренняя ошибка в продакш моде, в других модах(enviroment), где флаг debug стоит в true, вываливается exception c полным стеком вызовов и указанием ошибки
  • unavailable.php: страничка вываливается, когда юзер запрашивает страницу в то время как ваш сайт disabled (при помощи disabled task: "php symfony project:disable application env"), короче находится в спячке (under construction). А так же эта страница появляется, когда происходит очистка кэша (php symfony cc). То есть в промежуток времени, когда вы запустили task и до его окончания. На крупных сайтах кэш может быть большим и его чистка порой занимает несколько секунд. Symfony не обрабатывает запрос при частично очищенном кэше, поэтому запросы, пришедшие до окончания очистки кэша, будут отправлены на эту страницу .

Чтобы кастомизировать эти страницы, просто создайте директорию error в config директории всего вашего проекта или отдельно для каждого application. Либо тут my_project/config/error, либо my_project/apps/frontend/config/error. Создайте в этой папке файлы error.html.php и unavailable.php - symfony будет использовать их, вместо своих.