index/src/Http/ErrorHandling/HtmlErrorHandler.php

34 lines
945 B
PHP

<?php
// HtmlErrorHandler.php
// Created: 2024-03-28
// Updated: 2024-03-28
namespace Index\Http\ErrorHandling;
use Index\Http\{HttpResponseBuilder,HttpRequest};
class HtmlErrorHandler implements IErrorHandler {
private const TEMPLATE = <<<HTML
<!doctype html>
<html>
<head>
<meta charset=":charset">
<title>:code :message</title>
</head>
<body>
<center><h1>:code :message</h1><center>
<hr>
<center>Index</center>
</body>
</html>
HTML;
public function handle(HttpResponseBuilder $response, HttpRequest $request, int $code, string $message): void {
$response->setTypeHTML();
$response->setContent(strtr(self::TEMPLATE, [
':charset' => strtolower(mb_preferred_mime_name(mb_internal_encoding())),
':code' => sprintf('%03d', $code),
':message' => $message,
]));
}
}