diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index d282a17..76b6cb8 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -116,6 +116,7 @@ class RouterBase { $routeNotAllowed = false; $this->loadedRoute = $routeMatch; + $routeMatch->loadMiddleware($this->request); $routeMatch->renderRoute($this->request); break; } diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index aa50533..825f296 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -179,9 +179,9 @@ abstract class RouterEntry { public function getMergeableSettings() { $settings = $this->settings; - if(isset($settings['middleware'])) { + /*if(isset($settings['middleware'])) { unset($settings['middleware']); - } + }*/ if(isset($settings['prefix'])) { unset($settings['prefix']); @@ -243,7 +243,7 @@ abstract class RouterEntry { return new $name(); } - protected function loadMiddleware(Request $request) { + public function loadMiddleware(Request $request) { if($this->getMiddleware()) { $middleware = $this->loadClass($this->getMiddleware()); if (!($middleware instanceof Middleware)) { @@ -256,8 +256,6 @@ abstract class RouterEntry { } public function renderRoute(Request $request) { - // Load middleware - $this->loadMiddleware($request); if(is_object($this->getCallback()) && is_callable($this->getCallback())) { diff --git a/src/Pecee/SimpleRouter/RouterGroup.php b/src/Pecee/SimpleRouter/RouterGroup.php index 1537a71..d9f615a 100644 --- a/src/Pecee/SimpleRouter/RouterGroup.php +++ b/src/Pecee/SimpleRouter/RouterGroup.php @@ -10,7 +10,7 @@ class RouterGroup extends RouterEntry { parent::__construct(); } - public function matchRoute(Request $request) { + public function renderRoute(Request $request) { // Check if request method is allowed if(strtolower($request->getUri()) == strtolower($this->prefix) || stripos($request->getUri(), $this->prefix) === 0) { @@ -29,11 +29,17 @@ class RouterGroup extends RouterEntry { throw new RouterException('Method not allowed'); } - return $this; + $this->loadMiddleware($request); + + return parent::renderRoute($request); } // No match here, move on... return null; } + public function matchRoute(Request $request) { + return null; + } + } \ No newline at end of file diff --git a/src/Pecee/SimpleRouter/RouterResource.php b/src/Pecee/SimpleRouter/RouterResource.php index 071ff40..c10435e 100644 --- a/src/Pecee/SimpleRouter/RouterResource.php +++ b/src/Pecee/SimpleRouter/RouterResource.php @@ -20,9 +20,6 @@ class RouterResource extends RouterEntry { } public function renderRoute(Request $request) { - // Load middleware - $this->loadMiddleware($request); - if(is_object($this->getCallback()) && is_callable($this->getCallback())) { // When the callback is a function call_user_func_array($this->getCallback(), $this->getParameters());