7 use FastRoute\DataGenerator
;
8 use FastRoute\Dispatcher
;
9 use FastRoute\RouteCollector
;
10 use FastRoute\RouteParser
;
12 use http\Env\Response
;
14 $injector->share(RouteCollector
::class)
15 ->prepare(RouteCollector
::class, function($routes) use($injector) {
16 $routes->addRoute("GET", "/reset", function(array $args = null) use($injector) {
17 $injector->make(Session
::class)->reset()->regenerateId();
18 $injector->make(Web
::class)->redirect($injector->make(BaseUrl
::class));
20 $routes->addRoute("GET", "/session", function(array $args = null) use($injector) {
21 $session = $injector->make(Session
::class);
22 $response = $injector->make(Response
::class);
23 if (!(extension_loaded("xdebug") && ini_get("xdebug.overload_var_dump") && ini_get("html_errors"))) {
24 $response->setContentType("text/plain");
27 var_dump($_SESSION, $session);
29 $routes->addRoute("GET", "/info", function(array $args = null) {
33 foreach (parse_ini_file(__DIR__
."/../../config/routes.ini", true) as $controller => $definition) {
34 $factory = function(array $args = null) use($injector, $controller) {
35 $handler = $injector->make("app\\Controller\\$controller");
38 foreach ($definition as $method => $locations) {
39 foreach ($locations as $location) {
40 $routes->addRoute($method, $location, $factory);
45 ->alias(RouteParser
::class, RouteParser\Std
::class)
46 ->alias(DataGenerator
::class, DataGenerator\GroupCountBased
::class);
48 $injector->share(Dispatcher
::class)
49 ->alias(Dispatcher
::class, Dispatcher\GroupCountBased
::class)
50 ->delegate(Dispatcher\GroupCountBased
::class, function($class, Injector
$injector) {
51 return new $class($injector->make(RouteCollector
::class)->getData());