summaryrefslogtreecommitdiff
path: root/src/Router.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Router.php')
-rw-r--r--src/Router.php22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/Router.php b/src/Router.php
index e0b09ad..437d995 100644
--- a/src/Router.php
+++ b/src/Router.php
@@ -12,18 +12,18 @@ use Symfony\Component\Routing\RouteCollection;
class Router
{
use Singleton;
-
+
private RouteCollection $routes;
private RouteConfigurator $configurator;
-
+
public function __construct()
{
$this->routes = new RouteCollection();
$this->configurator = new RouteConfigurator($this->routes, $this->routes);
-
+
$this->addRoutes();
}
-
+
/**
* match the current url against the routes.
* also add preflight CORS headers on OPTIONS requests.
@@ -31,7 +31,7 @@ class Router
public function run(): Response
{
$request = Request::createFromGlobals();
-
+
if ($request->isMethod("OPTIONS")) {
$response = new Response();
$response->headers->add([
@@ -39,26 +39,26 @@ class Router
"Access-Control-Allow-Methods" => "GET, POST, PUT, DELETE, OPTIONS, PATCH, HEAD",
"Access-Control-Allow-Headers" => "X-Requested-With, Content-Type, Authorization",
]);
-
+
return $response;
}
-
+
$context = new RequestContext();
$context->fromRequest($request);
-
+
try {
$matcher = new UrlMatcher($this->routes, $context);
$match = $matcher->matchRequest($request);
-
+
$class = $match["_controller"][0];
$method = $match["_controller"][1];
-
+
return (new $class)->$method();
} catch (\Exception $exception) {
return new ErrorResponse(ErrorCode::UNKNOWN, "Unknown error occured");
}
}
-
+
/**
* add routes from the routes file
*/