public function register(Container $container) { $container->bind(FastRoute\Dispatcher::class, function (Container $container) { $routeCollector = $container->make(FastRoute\RouteCollector::class); return new FastRoute\Dispatcher\GroupCountBased($routeCollector->getData()); }); $container->bind(FastRoute\RouteParser::class, FastRoute\RouteParser\Std::class); $container->bind(FastRoute\DataGenerator::class, FastRoute\DataGenerator\GroupCountBased::class); $container->afterResolving(FastRoute\RouteCollector::class, function (FastRoute\RouteCollector $routeCollector, Container $container) { /** @var RouteProvider $routeProvider */ foreach ($container->tagged('route_provider') as $routeProvider) { $routeProvider->addRoutes($routeCollector); } }); $container->bind(ParametersReader::class, function () { return new ParametersReader(App::DEFAULT_PARAMETERS_ATTRIBUTE_NAME); }); }