From 975c27659c9eeddc20312a8655b1bd5b22523077 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Thu, 7 Apr 2016 23:16:50 +0200 Subject: [PATCH] [BUGFIX] Bugfixes and optimisations - Fixed issue causing nested groups not merging namespace correctly. - Fixed issue causing longer urls (for example: /route) to have higher priority than (/route/match) in some cases. --- src/Pecee/SimpleRouter/RouterBase.php | 8 ++++++++ src/Pecee/SimpleRouter/RouterGroup.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index 35d33c4..3999f01 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -135,6 +135,14 @@ class RouterBase { $routeNotAllowed = false; + // Make sure routes with longer urls are rendered first + usort($this->controllerUrlMap, function($a, $b) { + if(strlen($a->getUrl()) < strlen($b->getUrl())) { + return 1; + } + return -1; + }); + $max = count($this->controllerUrlMap); /* @var $route RouterEntry */ diff --git a/src/Pecee/SimpleRouter/RouterGroup.php b/src/Pecee/SimpleRouter/RouterGroup.php index f3c0ed4..015fb6b 100644 --- a/src/Pecee/SimpleRouter/RouterGroup.php +++ b/src/Pecee/SimpleRouter/RouterGroup.php @@ -93,7 +93,7 @@ class RouterGroup extends RouterEntry { * @return self */ public function addSettings(array $settings = null) { - if(isset($settings['namespace'])) { + if($this->getNamespace() !== null && isset($settings['namespace'])) { unset($settings['namespace']); } if(is_array($settings)) {