обработка исключений — onHttpError в klein.php выполняется каждый раз

я использую klein.php маршрутизатор, который действительно мощный, но теперь я хочу обрабатывать исключения,
так из документации я использую эту функцию

$klein->onHttpError(function ($code, $router,$matched,$method_matched,$http_exception) {
switch ($code) {
case 404:
$router->response()->body(
'404 Page'
);
break;
case 405:
$router->response()->body(
'You can\'t do that!'
);
break;
default:
$router->response()->body(
'Oh no, a bad error happened that caused a '. $code
);
}
});

Но даже если нет исключения, эта функция рендеринга и печати 404 page в конце каждой страницы.
Я делаю что-то неправильно? Я попробовал проверить $matched но не повезло.

И я хочу использовать $service->render() в обработке ошибок, как я могу это сделать? Потому что услуга не доступна, в частности, onHttpError функция.

1

Решение

После экспериментов выясняю, что это происходит из-за skipRemaining() функция. Затем я снова начал изучать проблемы. вопрос # 285 предоставил решение.

Но все равно я не нашел, чтобы сделать страницу в onHttpError() использовать функцию $service вызов объекта.

Редактировать:

Чтобы получить доступ $service объект в onHttpError()Мы должны объявить это снова. Так что код будет

$klein->onHttpError(function ($code, $router) {
$service = $router->service();
$service->render('your-page-url.php');
});
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]