diff options
Diffstat (limited to 'src/Middleware/RouteDispatcherServiceProvider.php')
-rw-r--r-- | src/Middleware/RouteDispatcherServiceProvider.php | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/Middleware/RouteDispatcherServiceProvider.php b/src/Middleware/RouteDispatcherServiceProvider.php new file mode 100644 index 00000000..3b4fa183 --- /dev/null +++ b/src/Middleware/RouteDispatcherServiceProvider.php @@ -0,0 +1,41 @@ +<?php + +namespace Engelsystem\Middleware; + +use Engelsystem\Container\ServiceProvider; +use FastRoute\Dispatcher as FastRouteDispatcher; +use FastRoute\RouteCollector; +use Psr\Http\Server\MiddlewareInterface; + +class RouteDispatcherServiceProvider extends ServiceProvider +{ + public function register() + { + $this->app->alias(RouteDispatcher::class, 'route.dispatcher'); + + $this->app + ->when(RouteDispatcher::class) + ->needs(FastRouteDispatcher::class) + ->give(function () { + return $this->generateRouting(); + }); + + $this->app + ->when(RouteDispatcher::class) + ->needs(MiddlewareInterface::class) + ->give(LegacyMiddleware::class); + } + + /** + * Includes the routes.php file + * + * @return FastRouteDispatcher + * @codeCoverageIgnore + */ + function generateRouting() + { + return \FastRoute\simpleDispatcher(function (RouteCollector $route) { + require config_path('routes.php'); + }); + } +} |