misuzu/src/RoutingErrorHandler.php

29 lines
964 B
PHP
Raw Normal View History

2024-03-30 03:14:03 +00:00
<?php
namespace Misuzu;
2024-10-05 02:40:29 +00:00
use Index\Http\{HtmlHttpErrorHandler,HttpResponseBuilder,HttpRequest};
2024-03-30 03:14:03 +00:00
2024-10-05 02:40:29 +00:00
class RoutingErrorHandler extends HtmlHttpErrorHandler {
2024-03-30 03:14:03 +00:00
public function handle(HttpResponseBuilder $response, HttpRequest $request, int $code, string $message): void {
if(str_starts_with($request->getPath(), '/_')) {
$response->setTypePlain();
$response->setContent(sprintf('HTTP %03d', $code));
return;
}
if($code === 500 || $code === 503) {
$response->setTypeHTML();
2024-03-30 03:19:08 +00:00
$response->setContent(file_get_contents(sprintf('%s/%03d.html', MSZ_TEMPLATES, $code)));
2024-03-30 03:14:03 +00:00
return;
}
if($code === 401 || $code === 403 || $code === 404) {
$response->setTypeHTML();
$response->setContent(Template::renderRaw(sprintf('errors.%03d', $code)));
return;
}
parent::handle($response, $request, $code, $message);
}
}