Kohana 3.2 Страница ошибки — дёшево и сердито!

kohanaЕсли вы хотите сделать полноценную обработку ошибок в Kohana, то нужно создавать свой класс Exception, наследник Kohana_Kohana_Exception, в котором мутить всю логику, потом создать под это дело контроллер с вьюсами и роутами.

Этот путь хорошо описан в мануале и довольно хорошо переведён и прокомментирован тут

Однако это путь для тех джедаев, кого не устраивает стандартная обработка ошибок Kohana и которые хотят вставить свою обработку (например отсылку SMS или email).

В большинстве же случаев нам нужно просто показать дружелюбную страницу для ошибок!

Для этого просто и тупо создаём файл шаблона views/kohana/error.php примерно следующего содержания:






   
     

Извините, такая страница не найдена!

Извините, доступ к этой странице закрыт!

Произошла неизвестная нам ошибка! Мы над ней уже работаем!!

Хочу обратить внимание, что мы лишь поменяли отображение ошибки. Вся обработка ошибок осталась прежней. Сервер по прежнему возвращает код ошибки, а новые ошибки добавляются в логи.

Вот и всё. Картинки и стили добавлять по вкусу =)

UPD: Если нужно программно выдать ошибку 404 (например, не нашли в базе данных такой страницы) то можно использовать код

    throw new HTTP_Exception_404();

Например:

$page = ORM::factory("page",$page_id);
if(!$page->loaded()){
    throw new HTTP_Exception_404();
}