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);
}
$debug = true; // false in production
$debug = true; // <------------------- make false in production
$myErrorHandler = new ErrorHandler($debug);
$myErrorHandler->register();

@ -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;
}

@ -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);
}
}

Loading…
Cancel
Save