From b21316248572cb27ed1f504529ad6680a473022e Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Tue, 2 Jan 2024 20:42:01 +0100 Subject: gemini --- src/Router.php | 80 ---------------------------------------------------------- 1 file changed, 80 deletions(-) delete mode 100644 src/Router.php (limited to 'src/Router.php') diff --git a/src/Router.php b/src/Router.php deleted file mode 100644 index 8b24000..0000000 --- a/src/Router.php +++ /dev/null @@ -1,80 +0,0 @@ -fromRequest($request); - - self::$routes = new RouteCollection(); - $loader = new AnnotationFileLoader(new FileLocator(), new RouteLoader()); - $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator(__DIR__ . '/Controller')); - foreach ($iterator as $file) { - /**@var \SplFileInfo $file*/ - if (in_array($file->getFilename(), ['.', '..'])) continue; - - $collection = $loader->load($file->getPathname(), 'attribute'); - self::$routes->addCollection($collection); - } - } - - public static function execute(): Response - { - try { - $matcher = new UrlMatcher(self::$routes, self::$context); - $match = $matcher->matchRequest(self::$request); - - foreach ($match as $key => $value) { - if (str_starts_with($key, '_')) continue; - - self::$request->query->set($key, $value); - } - - /**@var \ReflectionClass $class*/ - $class = $match['_']['class']; - /**@var \ReflectionMethod $method*/ - $method = $match['_']['method']; - - return ($class->newInstance())->{$method->getName()}(self::$request); - } catch (ResourceNotFoundException $exception) { - return new Response('404', 404); - } catch (MethodNotAllowedException $exception) { - return new Response('403', 403); - } catch (\Exception $exception) { - return new Response('500: ' . $exception->getMessage(), 500); - } - } - - /** - * @param string $name - * @param array $parameters - * @param int $referenceType - */ - public static function generate(string $name, array $parameters = [], int $referenceType = 1): string - { - $generator = new UrlGenerator(self::$routes, self::$context); - - return $generator->generate($name, $parameters, $referenceType); - } -} -- cgit v1.2.3