Merge branch 'master' of https://git.willy.club/William/new-new-willy.club
This commit is contained in:
commit
e03e17d293
@ -21,34 +21,28 @@ abstract class ErrorHandler
|
|||||||
public static function register(callable $callback)
|
public static function register(callable $callback)
|
||||||
{
|
{
|
||||||
ob_start();
|
ob_start();
|
||||||
set_error_handler(self::error(...));
|
|
||||||
set_exception_handler(self::exception(...));
|
|
||||||
register_shutdown_function(self::shutdown(...), $callback);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static function error($errno, $errstr, $errfile, $errline)
|
set_error_handler(function($errno, $errstr, $errfile, $errline) {
|
||||||
{
|
$errstr = htmlspecialchars($errstr);
|
||||||
$errstr = htmlspecialchars($errstr);
|
self::$error_messages[] = "<b>Error[$errno]:</b> $errstr in <b>$errfile</b> at line <b>$errline</b>";
|
||||||
self::$error_messages[] = "<b>Error[$errno]:</b> $errstr in <b>$errfile</b> at line <b>$errline</b>";
|
});
|
||||||
}
|
|
||||||
|
|
||||||
private static function exception($exception)
|
set_exception_handler(function($exception) {
|
||||||
{
|
self::$error_messages[] = "<b>Uncaught Exception:</b> " . $exception;
|
||||||
self::$error_messages[] = "<b>Uncaught Exception:</b> " . $exception;
|
});
|
||||||
}
|
|
||||||
|
|
||||||
private static function shutdown(callable $callback)
|
register_shutdown_function(function() use(&$callback) {
|
||||||
{
|
if (!self::$error_messages) {
|
||||||
if (!self::$error_messages) {
|
return;
|
||||||
return;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// remove current output to be replaced by error page
|
// remove current output to be replaced by error page
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
http_response_code(500);
|
http_response_code(500);
|
||||||
header_remove();
|
header_remove();
|
||||||
|
|
||||||
$callback(self::$error_messages);
|
$callback(self::$error_messages);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user