summaryrefslogtreecommitdiff
path: root/src/Router/Router.php
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2026-03-05 14:57:28 +0100
committerDaniel Weipert <git@mail.dweipert.de>2026-03-05 14:57:28 +0100
commitbd11271621bd3759cfd194ed0119c0dc28155fd0 (patch)
tree319b4790d4e2b05513abf023732ed6fb0717f603 /src/Router/Router.php
parent2386148b8f048ba40d9f26cc97898bdcdc778ea2 (diff)
updateHEADmain
Diffstat (limited to 'src/Router/Router.php')
-rw-r--r--src/Router/Router.php37
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;
}
/**