diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-09-04 18:35:13 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-09-04 21:13:28 +0200 |
commit | b52444af8a289e089d1239657cdf6ff06b21b29d (patch) | |
tree | c2754b3049a50ad6743841a609ab0574f241720d /src/Middleware/RouteDispatcherServiceProvider.php | |
parent | b320fc779063ee80b8f0ba505cb323287ccccbf5 (diff) | |
parent | a1bc763a16ee8be109de5c9053fbc5eded53824e (diff) |
Merge remote-tracking branch 'MyIgel/routing'
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'); + }); + } +} |