From fbabdb4df4a35fc4d16b7639c81714a4b01b1fa8 Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 27 May 2026 23:49:42 -0400 Subject: [PATCH] error msg --- src/Bootstrap.php | 2 +- src/Framework/ErrorHandler.php | 16 +++++++--- src/Framework/Middleware/ErrorMiddleware.php | 32 +++++++++++++++----- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/Bootstrap.php b/src/Bootstrap.php index 044f25b..d834bd1 100644 --- a/src/Bootstrap.php +++ b/src/Bootstrap.php @@ -56,7 +56,7 @@ function dump($var = 'nothing', endDump $end = endDump::KEEP_WORKING) Common::dump($var, $end); } -$debug = true; // false in production +$debug = true; // <------------------- make false in production $myErrorHandler = new ErrorHandler($debug); $myErrorHandler->register(); diff --git a/src/Framework/ErrorHandler.php b/src/Framework/ErrorHandler.php index c608f3c..327f442 100644 --- a/src/Framework/ErrorHandler.php +++ b/src/Framework/ErrorHandler.php @@ -192,7 +192,7 @@ final class ErrorHandler }; } - private function isJsonRequest(): bool + public function isJsonRequest(): bool { $accept = $_SERVER['HTTP_ACCEPT'] ?? ''; $contentType = $_SERVER['CONTENT_TYPE'] ?? ''; @@ -222,7 +222,7 @@ final class ErrorHandler return $trace; } - private function setJsonHeaders(int $status_code = 500): void + public function setJsonHeaders(int $status_code = 500): void { if (!headers_sent()) { /* @@ -238,10 +238,15 @@ final class ErrorHandler } private function renderJsonDebug(Throwable $e): void + { + echo $this->getJsonDebug($e); + } + + public function getJsonDebug(Throwable $e): string { $this->setJsonHeaders(); - echo json_encode([ + return json_encode([ 'error' => [ 'type' => $this->getErrorType($e), 'message' => $e->getMessage(), @@ -297,7 +302,7 @@ final class ErrorHandler echo $color . $out . PHP_EOL; } - private function formatWebMessage(Throwable $e): string + public function formatWebMessage(Throwable $e): string { $styles = [ 'error' => 'uk-alert-danger', @@ -325,7 +330,8 @@ final class ErrorHandler return $msg; } - public function renderProdMessage(): string { + public function getProdMessage(): string + { if (Console::isConsole()) { return $this->myErr; } diff --git a/src/Framework/Middleware/ErrorMiddleware.php b/src/Framework/Middleware/ErrorMiddleware.php index 4015c79..1eb267b 100644 --- a/src/Framework/Middleware/ErrorMiddleware.php +++ b/src/Framework/Middleware/ErrorMiddleware.php @@ -12,7 +12,10 @@ use IOcornerstone\Framework\Http\{ Response, Stream }; -use IOcornerstone\Framework\Registry as Reg; +use IOcornerstone\Framework\{ + Registry as Reg, + Console +}; final class ErrorMiddleware implements MiddlewareInterface { @@ -45,15 +48,28 @@ final class ErrorMiddleware implements MiddlewareInterface private function formatException(\Throwable $e): string { + if (! function_exists("isLive")) { + $live = Reg::get('debug') ? false : true; + } else { + $live = isLive(); + } + + if ($live) { + return Reg::get('error_handler')->getProdMessage(); + } + + if (Console::isConsole()) { + return sprintf( + "%s\n\n%s", + $e->getMessage(), + $e->getTraceAsString() + ); + } - if (isLive()) { - return Reg::get('error_handler')->renderProdMessage(); + if (Reg::get('error_handler')->isJsonRequest()) { + Reg::get('error_handler')->getJsonDebug($e); } - return sprintf( - "%s\n\n%s", - $e->getMessage(), - $e->getTraceAsString() - ); + return Reg::get('error_handler')->formatWebMessage($e); } }