From d3ed3a61b5e84c4e9f2a24a54e60e0040787eeda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Tue, 27 Oct 2015 16:42:39 +0100 Subject: [PATCH 1/2] [BUGFIX] Middlewares are no longer loaded on invalid routes --- src/Pecee/SimpleRouter/RouterBase.php | 1 + src/Pecee/SimpleRouter/RouterEntry.php | 4 +--- src/Pecee/SimpleRouter/RouterResource.php | 3 --- 3 files changed, 2 insertions(+), 6 deletions(-) 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..04fd537 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -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/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()); From bc163886134ffa73d96c1b3efd524c71d534b4ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Tue, 27 Oct 2015 17:35:56 +0100 Subject: [PATCH 2/2] [OPTIMISATION] Optimised middleware loading and routes. --- src/Pecee/SimpleRouter/RouterEntry.php | 4 ++-- src/Pecee/SimpleRouter/RouterGroup.php | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index 04fd537..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']); 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