diff options
| author | Daniel Weipert <git@mail.dweipert.de> | 2026-03-05 14:57:28 +0100 |
|---|---|---|
| committer | Daniel Weipert <git@mail.dweipert.de> | 2026-03-05 14:57:28 +0100 |
| commit | bd11271621bd3759cfd194ed0119c0dc28155fd0 (patch) | |
| tree | 319b4790d4e2b05513abf023732ed6fb0717f603 /src/Router/Router.php | |
| parent | 2386148b8f048ba40d9f26cc97898bdcdc778ea2 (diff) | |
Diffstat (limited to 'src/Router/Router.php')
| -rw-r--r-- | src/Router/Router.php | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/Router/Router.php b/src/Router/Router.php index 534b7f7..377821f 100644 --- a/src/Router/Router.php +++ b/src/Router/Router.php @@ -6,6 +6,7 @@ use App\Errors\ErrorCode; use App\Errors\ErrorResponse; use App\Errors\Exception; use App\Singleton; +use App\Support\Logger; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Exception\MethodNotAllowedException; @@ -38,14 +39,14 @@ class Router { $request = Request::createFromGlobals(); - if ($request->isMethod("OPTIONS")) { - $response = new Response(); - $response->headers->add([ - "Access-Control-Allow-Origin" => "*", - "Access-Control-Allow-Methods" => "GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD", - "Access-Control-Allow-Headers" => "X-Requested-With, Content-Type, Authorization", - ]); + $response = new Response(); + $response->headers->add([ + "Access-Control-Allow-Origin" => "*", + "Access-Control-Allow-Methods" => "GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD", + "Access-Control-Allow-Headers" => "X-Requested-With, Content-Type, Authorization", + ]); + if ($request->isMethod("OPTIONS")) { return $response; } @@ -64,22 +65,34 @@ class Router array_flip(["_controller", "_route"]) )); - return (new $class)->$method($request); + Logger::logRequestToFile($request); + + $response = (new $class)->$method($request); } catch (Exception $exception) { - return ErrorResponse::fromException($exception); + $response = ErrorResponse::fromException($exception); } catch (ResourceNotFoundException $exception) { - return new ErrorResponse(ErrorCode::NOT_FOUND, "404", Response::HTTP_NOT_FOUND); + $response = new ErrorResponse(ErrorCode::NOT_FOUND, "404", Response::HTTP_NOT_FOUND); } catch (MethodNotAllowedException $exception) { - return new ErrorResponse(ErrorCode::FORBIDDEN, "403", Response::HTTP_FORBIDDEN); + $response = new ErrorResponse(ErrorCode::FORBIDDEN, "403", Response::HTTP_FORBIDDEN); } catch (\LogicException $exception) { // display logic exceptions normally throw $exception; } catch (\Exception $exception) { - return new ErrorResponse( + $response = new ErrorResponse( ErrorCode::UNKNOWN, $exception->getMessage() ?: "Unknown error occured", Response::HTTP_INTERNAL_SERVER_ERROR ); + } catch (\Error $error) { + error_log($error->getMessage() ?: "Unknown error occured"); + + $response = new ErrorResponse( + ErrorCode::UNKNOWN, + $error->getMessage() ?: "Unknown error occured", + Response::HTTP_INTERNAL_SERVER_ERROR + ); } + + return $response; } /** |
