main
Robert 3 weeks ago
parent 92043c38c7
commit fbabdb4df4
  1. 2
      src/Bootstrap.php
  2. 16
      src/Framework/ErrorHandler.php
  3. 32
      src/Framework/Middleware/ErrorMiddleware.php

@ -56,7 +56,7 @@ function dump($var = 'nothing', endDump $end = endDump::KEEP_WORKING)
Common::dump($var, $end); Common::dump($var, $end);
} }
$debug = true; // false in production $debug = true; // <------------------- make false in production
$myErrorHandler = new ErrorHandler($debug); $myErrorHandler = new ErrorHandler($debug);
$myErrorHandler->register(); $myErrorHandler->register();

@ -192,7 +192,7 @@ final class ErrorHandler
}; };
} }
private function isJsonRequest(): bool public function isJsonRequest(): bool
{ {
$accept = $_SERVER['HTTP_ACCEPT'] ?? ''; $accept = $_SERVER['HTTP_ACCEPT'] ?? '';
$contentType = $_SERVER['CONTENT_TYPE'] ?? ''; $contentType = $_SERVER['CONTENT_TYPE'] ?? '';
@ -222,7 +222,7 @@ final class ErrorHandler
return $trace; return $trace;
} }
private function setJsonHeaders(int $status_code = 500): void public function setJsonHeaders(int $status_code = 500): void
{ {
if (!headers_sent()) { if (!headers_sent()) {
/* /*
@ -238,10 +238,15 @@ final class ErrorHandler
} }
private function renderJsonDebug(Throwable $e): void private function renderJsonDebug(Throwable $e): void
{
echo $this->getJsonDebug($e);
}
public function getJsonDebug(Throwable $e): string
{ {
$this->setJsonHeaders(); $this->setJsonHeaders();
echo json_encode([ return json_encode([
'error' => [ 'error' => [
'type' => $this->getErrorType($e), 'type' => $this->getErrorType($e),
'message' => $e->getMessage(), 'message' => $e->getMessage(),
@ -297,7 +302,7 @@ final class ErrorHandler
echo $color . $out . PHP_EOL; echo $color . $out . PHP_EOL;
} }
private function formatWebMessage(Throwable $e): string public function formatWebMessage(Throwable $e): string
{ {
$styles = [ $styles = [
'error' => 'uk-alert-danger', 'error' => 'uk-alert-danger',
@ -325,7 +330,8 @@ final class ErrorHandler
return $msg; return $msg;
} }
public function renderProdMessage(): string { public function getProdMessage(): string
{
if (Console::isConsole()) { if (Console::isConsole()) {
return $this->myErr; return $this->myErr;
} }

@ -12,7 +12,10 @@ use IOcornerstone\Framework\Http\{
Response, Response,
Stream Stream
}; };
use IOcornerstone\Framework\Registry as Reg; use IOcornerstone\Framework\{
Registry as Reg,
Console
};
final class ErrorMiddleware implements MiddlewareInterface final class ErrorMiddleware implements MiddlewareInterface
{ {
@ -45,15 +48,28 @@ final class ErrorMiddleware implements MiddlewareInterface
private function formatException(\Throwable $e): string 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()) { if (Reg::get('error_handler')->isJsonRequest()) {
return Reg::get('error_handler')->renderProdMessage(); Reg::get('error_handler')->getJsonDebug($e);
} }
return sprintf( return Reg::get('error_handler')->formatWebMessage($e);
"%s\n\n%s",
$e->getMessage(),
$e->getTraceAsString()
);
} }
} }

Loading…
Cancel
Save