From efd5159604190c42ee48dac063d41fcb9690a77f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Mon, 27 Nov 2017 02:03:12 +0100 Subject: [PATCH] Bugfixes - Fixed issue with parsing parameters on some occasion. - Optimisations. --- src/Pecee/Http/Uri.php | 16 ++++++++-------- .../SimpleRouter/Route/LoadableRoute.php | 19 +++++++++++-------- src/Pecee/SimpleRouter/Route/Route.php | 4 ++-- .../SimpleRouter/Route/RouteController.php | 3 ++- src/Pecee/SimpleRouter/Route/RouteGroup.php | 9 ++++++--- .../SimpleRouter/Route/RouteResource.php | 4 ++-- src/Pecee/SimpleRouter/Router.php | 4 ++-- 7 files changed, 33 insertions(+), 26 deletions(-) diff --git a/src/Pecee/Http/Uri.php b/src/Pecee/Http/Uri.php index 41daf26..0eb957e 100644 --- a/src/Pecee/Http/Uri.php +++ b/src/Pecee/Http/Uri.php @@ -6,14 +6,14 @@ class Uri { private $originalUrl; private $data = [ - 'scheme' => '', - 'host' => '', - 'port' => '', - 'user' => '', - 'pass' => '', - 'path' => '', - 'query' => '', - 'fragment' => '', + 'scheme' => null, + 'host' => null, + 'port' => null, + 'user' => null, + 'pass' => null, + 'path' => null, + 'query' => null, + 'fragment' => null, ]; public function __construct($url) diff --git a/src/Pecee/SimpleRouter/Route/LoadableRoute.php b/src/Pecee/SimpleRouter/Route/LoadableRoute.php index 9691f24..fa98eb4 100644 --- a/src/Pecee/SimpleRouter/Route/LoadableRoute.php +++ b/src/Pecee/SimpleRouter/Route/LoadableRoute.php @@ -57,7 +57,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute return null; } - return (preg_match($this->regex, $request->getHost() . $url) !== 0); + return (preg_match($this->regex, $request->getHost() . $url) > 0); } /** @@ -74,7 +74,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute $regex = sprintf(static::PARAMETERS_REGEX_FORMAT, $this->paramModifiers[0], $this->paramOptionalSymbol, $this->paramModifiers[1]); - if (preg_match_all('/' . $regex . '/u', $this->url, $matches) === 1) { + if (preg_match_all('/' . $regex . '/u', $this->url, $matches) > 0) { $this->parameters = array_fill_keys($matches[1], null); } } @@ -124,7 +124,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute for ($i = $max; $i >= 0; $i--) { $param = $keys[$i]; - if ($parameters === '' || (is_array($parameters) && count($parameters) === 0)) { + if ($parameters === '' || (is_array($parameters) === true && count($parameters) === 0)) { $value = ''; } else { $p = (array)$parameters; @@ -229,15 +229,18 @@ abstract class LoadableRoute extends Route implements ILoadableRoute */ public function setSettings(array $values, $merge = false) { - if (isset($values['as'])) { + if (isset($values['as']) === true) { + + $name = $values['as']; + if ($this->name !== null && $merge !== false) { - $this->setName($values['as'] . '.' . $this->name); - } else { - $this->setName($values['as']); + $name .= '.' . $this->name; } + + $this->setName($name); } - if (isset($values['prefix'])) { + if (isset($values['prefix']) === true) { $this->setUrl($values['prefix'] . $this->getUrl()); } diff --git a/src/Pecee/SimpleRouter/Route/Route.php b/src/Pecee/SimpleRouter/Route/Route.php index cc6f40d..54e4163 100644 --- a/src/Pecee/SimpleRouter/Route/Route.php +++ b/src/Pecee/SimpleRouter/Route/Route.php @@ -117,7 +117,7 @@ abstract class Route implements IRoute // Ensures that hostnames/domains will work with parameters $url = '/' . ltrim($url, '/'); - if (preg_match_all('/' . $regex . '/u', $route, $parameters) !== 0) { + if (preg_match_all('/' . $regex . '/u', $route, $parameters) > 0) { $urlParts = preg_split('/((\-?\/?)\{[^}]+\})/', rtrim($route, '/')); @@ -155,7 +155,7 @@ abstract class Route implements IRoute $urlRegex = preg_quote($route, '/'); } - if (preg_match(sprintf($this->urlRegex, $urlRegex), $url, $matches) === 1) { + if (preg_match(sprintf($this->urlRegex, $urlRegex), $url, $matches) > 0) { $values = []; diff --git a/src/Pecee/SimpleRouter/Route/RouteController.php b/src/Pecee/SimpleRouter/Route/RouteController.php index 3489220..a3be252 100644 --- a/src/Pecee/SimpleRouter/Route/RouteController.php +++ b/src/Pecee/SimpleRouter/Route/RouteController.php @@ -1,4 +1,5 @@ names = $values['names']; } diff --git a/src/Pecee/SimpleRouter/Route/RouteGroup.php b/src/Pecee/SimpleRouter/Route/RouteGroup.php index 8a44003..93a334b 100644 --- a/src/Pecee/SimpleRouter/Route/RouteGroup.php +++ b/src/Pecee/SimpleRouter/Route/RouteGroup.php @@ -159,11 +159,14 @@ class RouteGroup extends Route implements IGroupRoute } if (isset($values['as']) === true) { + + $name = $values['as']; + if ($this->name !== null && $merge !== false) { - $this->name = $values['as'] . '.' . $this->name; - } else { - $this->name = $values['as']; + $name .= '.' . $this->name; } + + $this->name = $name; } parent::setSettings($values, $merge); diff --git a/src/Pecee/SimpleRouter/Route/RouteResource.php b/src/Pecee/SimpleRouter/Route/RouteResource.php index c042b23..7d4c226 100644 --- a/src/Pecee/SimpleRouter/Route/RouteResource.php +++ b/src/Pecee/SimpleRouter/Route/RouteResource.php @@ -206,11 +206,11 @@ class RouteResource extends LoadableRoute implements IControllerRoute */ public function setSettings(array $values, $merge = false) { - if (isset($values['names'])) { + if (isset($values['names']) === true) { $this->names = $values['names']; } - if (isset($values['methods'])) { + if (isset($values['methods']) === true) { $this->methodNames = $values['methods']; } diff --git a/src/Pecee/SimpleRouter/Router.php b/src/Pecee/SimpleRouter/Router.php index a1eeff1..cd9aaeb 100644 --- a/src/Pecee/SimpleRouter/Router.php +++ b/src/Pecee/SimpleRouter/Router.php @@ -285,7 +285,7 @@ class Router } if ($routeNotAllowed === true) { - $message = sprintf('Route "%s" or method "%s" not allowed.', $this->request->getUri()->getPath(), $this->request->getMethod()); + $message = sprintf('Route "%s" or method "%s" not allowed.', $this->request->getUri()->getPath(), $this->request->getMethod()); $this->handleException(new HttpException($message, 403)); } @@ -497,7 +497,7 @@ class Router $route = $this->processedRoutes[$i]; /* Check if the route contains the name/alias */ - if ($route->hasName($controller)) { + if ($route->hasName($controller) === true) { return $route->findUrl($method, $parameters, $name) . $this->arrayToParams($getParams); }