summaryrefslogtreecommitdiff
path: root/src/Middleware/RouteDispatcherServiceProvider.php
diff options
context:
space:
mode:
authorIgor Scheller <igor.scheller@igorshp.de>2018-09-04 18:35:13 +0200
committerIgor Scheller <igor.scheller@igorshp.de>2018-09-04 21:13:28 +0200
commitb52444af8a289e089d1239657cdf6ff06b21b29d (patch)
treec2754b3049a50ad6743841a609ab0574f241720d /src/Middleware/RouteDispatcherServiceProvider.php
parentb320fc779063ee80b8f0ba505cb323287ccccbf5 (diff)
parenta1bc763a16ee8be109de5c9053fbc5eded53824e (diff)
Merge remote-tracking branch 'MyIgel/routing'
Diffstat (limited to 'src/Middleware/RouteDispatcherServiceProvider.php')
-rw-r--r--src/Middleware/RouteDispatcherServiceProvider.php41
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');
+ });
+ }
+}