Как настроить страницы ошибок в Kohana 3.0

Я пытался найти полное объяснение того, как настраивать страницы ошибок в Kohana 3.0, и мне пока не повезло. Итак, может ли кто-нибудь показать мне, как это сделать, основываясь на решении, предоставленном Руководством Kohana?

Когда я говорю полное объяснение, я имею в виду местоположение классов, их имена, которые нужно расширять, полный код и, пожалуйста, представление об одной из ошибок.

Большое спасибо.

1 ответ

Решение

Я предлагаю вам прочитать http://kohanaframework.org/3.0/guide/kohana/conventions. Вы можете работать с файлами, которые нужно создать для себя, основываясь на именах классов и способах автоматической загрузки Kohana. Прелесть коханы для меня в том, что она не пытается делать все для вас, и поэтому, на мой взгляд, очень важно прочитать документацию.

Примечание: я не использовал Kohana 3.0, в частности, но это должно применяться.

Например, в части 1 этот код:

<?php defined('SYSPATH') or die('No direct access');

class HTTP_Response_Exception extends Kohana_Exception {}

Kohana использует " каскадную файловую систему", поэтому вы должны добавить код, показанный в 2, в

приложение / классы /кохана / исключение.php

Внутри этого файла вы бы расширили обработчик исключений Kohana

class Kohana_Exception extends Kohana_Kohana_Exception {

   public static function exception_handler(Exception $e)
   {
       ...
   }
}

Показанный маршрут добавляется к загрузочному приложению вашего приложения, которое находится под

Приложение / bootstrap.php

По мере маршрутизации ошибок вы можете сказать, каким будет контроллер:

Route::set('error', 'error/<action>(/<message>)', array('action' => '[0-9]++', 'message' => '.+'))
->defaults(array(
    'controller' => 'error_handler'
));

Таким образом, будет контроллер, созданный в:

приложение / классы /контроллер / обработчик ошибок.php

Это будет выглядеть так:

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Error_Handler extends Controller_Template {

    ...

    public function action_404()
    {
        $this->template->title = '404 Not Found';
        // A view example
        $view = View::factory('error/404');
        $view->render();
        ...
    }
}

Ваши взгляды тогда (возможно) будут помещены в:

application / views /error / 404.php

Причина, по которой документация короткая, заключается в том, что одни и те же ответы применимы не ко всем. Например, большинство людей (я знаю) используют свои собственные шаблоны и т. Д.

Другие вопросы по тегам