Как настроить страницы ошибок в 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
Причина, по которой документация короткая, заключается в том, что одни и те же ответы применимы не ко всем. Например, большинство людей (я знаю) используют свои собственные шаблоны и т. Д.