30 lines
940 B
PHP
30 lines
940 B
PHP
|
<?php
|
||
|
namespace Hanyuu;
|
||
|
|
||
|
use Index\Http\{HttpResponseBuilder,HttpRequest};
|
||
|
use Index\Http\ErrorHandling\HtmlErrorHandler;
|
||
|
use Sasae\SasaeEnvironment;
|
||
|
|
||
|
class RoutingErrorHandler extends HtmlErrorHandler {
|
||
|
public function __construct(
|
||
|
private SasaeEnvironment $templating
|
||
|
) {}
|
||
|
|
||
|
#[\Override]
|
||
|
public function handle(HttpResponseBuilder $response, HttpRequest $request, int $code, string $message): void {
|
||
|
if($code === 500 || $code === 503) {
|
||
|
$response->setTypeHTML();
|
||
|
$response->setContent(file_get_contents(sprintf('%s/errors/%s.html', HAU_DIR_TEMPLATES, $code)));
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if($code == 401 || $code === 403 || $code === 400) {
|
||
|
$response->setTypeHTML();
|
||
|
$response->setContent($this->templating->render(sprintf('errors/%s', $code)));
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
parent::handle($response, $request, $code, $message);
|
||
|
}
|
||
|
}
|