diff --git a/src/Router.php b/src/Router.php index b05895e..7358ed1 100644 --- a/src/Router.php +++ b/src/Router.php @@ -143,6 +143,7 @@ public static function match(string $methods, string $pattern, $handler) static::$namedRoutes[$routeOptions['name']] = $pattern; } + if ($routeOptions['middleware']) { static::before($methods, $rawPattern, $routeOptions['middleware']); } diff --git a/src/Router/Core.php b/src/Router/Core.php index fb98853..ec5fccc 100644 --- a/src/Router/Core.php +++ b/src/Router/Core.php @@ -171,6 +171,19 @@ protected static function mapHandler($handler, $options): array || is_numeric($key) && is_string($value) && strpos($value, '@') ) { $handler = $handler[$key]; + + if (is_string($handler)) { + $namespace = static::$namespace; + + if ($options['namespace']) { + static::$namespace = $options['namespace']; + } + + $handler = str_replace('\\\\', '\\', static::$namespace . "\\$handler"); + + static::$namespace = $namespace; + } + unset($handlerData[$key]); break; }