Die Error-Middleware wurde in eine Klasse verpackt.
This commit is contained in:
+2
-37
@@ -5,12 +5,10 @@ $dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__));
|
||||
$dotenv->load();
|
||||
|
||||
use DI\Container;
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Slim\Exception\HttpException;
|
||||
use Slim\Factory\AppFactory;
|
||||
use Slim\Routing\RouteCollectorProxy;
|
||||
use TorstenHettstedt\TimekeepingApi\Controller\WorkingHoursController;
|
||||
use TorstenHettstedt\TimekeepingApi\Middleware\ErrorHandler;
|
||||
use TorstenHettstedt\TimekeepingApi\Middleware\JsonBodyParserMiddleware;
|
||||
|
||||
$container = new Container();
|
||||
@@ -53,40 +51,7 @@ $app->group('/working-hours', function (RouteCollectorProxy $group) {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Define Custom Error Handler
|
||||
$customErrorHandler = function (
|
||||
ServerRequestInterface $request,
|
||||
Throwable $exception,
|
||||
bool $displayErrorDetails,
|
||||
bool $logErrors,
|
||||
bool $logErrorDetails,
|
||||
?LoggerInterface $logger = null
|
||||
) use ($app) {
|
||||
if ($logger !== null && $logErrors === true) {
|
||||
$logger->error($exception->getMessage());
|
||||
}
|
||||
$payload = [
|
||||
'timestamp' => date('Y-m-d\TH:m:sP'),
|
||||
'status' => $exception->getCode(),
|
||||
"error" => '',
|
||||
'message' => $exception->getMessage(),
|
||||
'path' => $exception->getFile()
|
||||
];
|
||||
|
||||
if ($exception instanceof HttpException) {
|
||||
$payload['error'] = $exception->getTitle();
|
||||
}
|
||||
|
||||
$response = $app->getResponseFactory()->createResponse($exception->getCode());
|
||||
$response->getBody()->write(
|
||||
json_encode($payload, JSON_UNESCAPED_UNICODE)
|
||||
);
|
||||
|
||||
return $response;
|
||||
};
|
||||
|
||||
$errorMiddleware = $app->addErrorMiddleware(true, true, true);
|
||||
$errorMiddleware->setDefaultErrorHandler($customErrorHandler);
|
||||
$errorMiddleware->setDefaultErrorHandler(new ErrorHandler($app));
|
||||
|
||||
$app->run();
|
||||
Reference in New Issue
Block a user