From 27371dfa11f4812f593dd7364bc8882bb72a34cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Thu, 7 Apr 2016 19:33:04 +0200 Subject: [PATCH] [FEATURE] Added support for multiple aliases --- src/Pecee/SimpleRouter/RouterBase.php | 2 +- src/Pecee/SimpleRouter/RouterRoute.php | 30 ++++++++++++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index 921db9b..35d33c4 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -373,7 +373,7 @@ class RouterBase { $route = $this->controllerUrlMap[$i]; // Check an alias exist, if the matches - use it - if($route instanceof RouterRoute && strtolower($route->getAlias()) === strtolower($controller)) { + if($route instanceof RouterRoute && $route->hasAlias($controller)) { return $this->processUrl($route, $route->getMethod(), $parameters, $getParams); } diff --git a/src/Pecee/SimpleRouter/RouterRoute.php b/src/Pecee/SimpleRouter/RouterRoute.php index 9b5fc7d..8b11afa 100644 --- a/src/Pecee/SimpleRouter/RouterRoute.php +++ b/src/Pecee/SimpleRouter/RouterRoute.php @@ -15,8 +15,6 @@ class RouterRoute extends RouterEntry { parent::__construct(); $this->setUrl($url); $this->setCallback($callback); - - $this->settings['aliases'] = array(); } public function matchRoute(Request $request) { @@ -50,8 +48,6 @@ class RouterRoute extends RouterEntry { return true; } - - return null; } @@ -88,15 +84,37 @@ class RouterRoute extends RouterEntry { /** * Get alias for the url which can be used when getting the url route. - * @return string + * @return string|array */ public function getAlias(){ return $this->alias; } + /** + * Check if route has given alias. + * + * @param $name + * @return bool + */ + public function hasAlias($name) { + if(is_array($this->alias)) { + foreach($this->alias as $alias) { + if(strtolower($alias) === strtolower($name)) { + return true; + } + } + } else { + if(strtolower($this->getAlias()) === strtolower($name)) { + return true; + } + } + + return false; + } + /** * Set the url alias for easier getting the url route. - * @param string $alias + * @param string|array $alias * @return self */ public function setAlias($alias){