34 lines
945 B
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,
|
|
]));
|
|
}
|
|
}
|