Kohana のエラー ハンドラを作成しています。、、などのアクションを持つコントローラーController_Errors
( を継承する) があります。Controller_Kohana_Errors
action_404
action_403
action_500
ルート:
Route::set('errors','errors/<action>', array (
'action' => '[\d]{3}',
))
->defaults(array(
'controller' => 'errors',
));
付属のサンプルbootstrap.php
try {
$response = Request::factory()->execute();
} catch (Exception $e) {
// If we are in development and the error wasn't a 404, show the stack trace.
// Otherwise, show a nice error.
if ((Kohana::$environment == KOHANA::DEVELOPMENT) AND ( ! ($e->getCode() == 404 OR $e->getCode() == 403))) {
throw $e;
}
// Log the error
Kohana::$log->add(Log::ERROR, Kohana_Exception::text($e));
$error_code = 500;
if ($e instanceof ReflectionException) {
$error_code = 404;
}
if ($e instanceof HTTP_Exception)
{
$error_code = $e->getCode();
}
$request = Request::factory('errors/'.$error_code);
if (*__NOT SURE WHAT GOES HERE__*) {
$request = Request::factory('errors/500');
}
$response = $request->execute();
}
// Send the headers and echo the response
echo $response->send_headers()->body();
人々が私のクラスを拡張できるようにしたいので、アクションが存在するかどうかを確認し、存在しない場合は 500 エラーを表示するように変更する方法が必要です。( という行を参照してください*__NOT SURE WHAT GOES HERE__*
。)