From 0bec52460673773e13df42c1cf2ed02df1e3adfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Fri, 11 Dec 2015 18:06:52 +0100 Subject: [PATCH] [OPTIMISATION] Optimisations + bugfixes. - Fixed references to Pecee framework. - Fixed variables not being initialised before usage. - Cleaned up duplicate checks. - Other small optimisations and bugfixes. --- src/Pecee/Http/Response.php | 2 +- src/Pecee/SimpleRouter/RouterBase.php | 29 ++++++++++++++------- src/Pecee/SimpleRouter/RouterController.php | 2 +- src/Pecee/SimpleRouter/RouterEntry.php | 6 ++--- src/Pecee/SimpleRouter/RouterGroup.php | 8 +++--- src/Pecee/SimpleRouter/RouterResource.php | 2 +- src/Pecee/SimpleRouter/RouterRoute.php | 6 ++--- src/Pecee/SimpleRouter/SimpleRouter.php | 2 +- 8 files changed, 33 insertions(+), 24 deletions(-) diff --git a/src/Pecee/Http/Response.php b/src/Pecee/Http/Response.php index b8dd6289..66be015a 100644 --- a/src/Pecee/Http/Response.php +++ b/src/Pecee/Http/Response.php @@ -26,7 +26,7 @@ public function redirect($url) { } public function refresh() { - $this->redirect(url()); + $this->redirect(Request::getInstance()->getUri()); } /** diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index b3cf31dc..208de190 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -1,10 +1,8 @@ matchRoute($this->request); - if($routeMatch && !($routeMatch instanceof RouterGroup)) { + if($routeMatch) { if(count($route->getRequestMethods()) && !in_array($this->request->getMethod(), $route->getRequestMethods())) { $routeNotAllowed = true; @@ -132,9 +130,9 @@ public function routeRequest() { $routeNotAllowed = false; - $this->loadedRoute = $routeMatch; - $routeMatch->loadMiddleware($this->request); - $routeMatch->renderRoute($this->request); + $this->loadedRoute = $route; + $route->loadMiddleware($this->request); + $route->renderRoute($this->request); break; } } @@ -221,6 +219,15 @@ public function setBaseCsrfVerifier(BaseCsrfVerifier $baseCsrfVerifier) { return $this; } + protected function getParamsToArray($query) { + $output = array(); + if($query[0] === '?') { + $query = substr($query, 1); + } + parse_str($query, $output); + return $output; + } + protected function processUrl($route, $method = null, $parameters = null, $getParams = null) { $url = '/' . trim($route->getUrl(), '/'); @@ -254,7 +261,7 @@ protected function processUrl($route, $method = null, $parameters = null, $getPa $url = rtrim($url, '/') . '/'; if($getParams !== null && count($getParams)) { - $url .= '?'.Url::arrayToParams($getParams); + $url .= '?' . $this->getParamsToArray($getParams); } return $url; @@ -328,13 +335,15 @@ public function getRoute($controller = null, $parameters = null, $getParams = nu $url = array($controller); if(is_array($parameters)) { - ArrayUtil::append($url, $parameters); + foreach($parameters as $key => $value) { + array_push($url,$value); + } } $url = '/' . trim(join('/', $url), '/') . '/'; if(is_array($getParams)) { - $url .= '?' . Url::arrayToParams($getParams); + $url .= '?' . $this->getParamsToArray($getParams); } return $url; diff --git a/src/Pecee/SimpleRouter/RouterController.php b/src/Pecee/SimpleRouter/RouterController.php index 1bde2c41..a6fef1b0 100644 --- a/src/Pecee/SimpleRouter/RouterController.php +++ b/src/Pecee/SimpleRouter/RouterController.php @@ -63,7 +63,7 @@ public function matchRoute(Request $request) { // Set callback $this->setCallback($this->controller . '@' . $this->method); - return $this; + return true; } } return null; diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index 934c2708..67740bd7 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -304,7 +304,7 @@ protected function parseParameters($route, $url, $parameterRegex = '[a-z0-9]*?') $max = count($parameterNames); - if(count($max)) { + if($max) { for($i = 0; $i < $max; $i++) { $name = $parameterNames[$i]; $parameterValue = (isset($parameterValues[$name['name']]) && !empty($parameterValues[$name['name']])) ? $parameterValues[$name['name']] : null; @@ -332,7 +332,7 @@ public function loadMiddleware(Request $request) { throw new RouterException($middleware . ' must be instance of Middleware'); } - /* @var $class Middleware */ + /* @var $class IMiddleware */ $middleware->handle($request); } } else { @@ -341,7 +341,7 @@ public function loadMiddleware(Request $request) { throw new RouterException($this->getMiddleware() . ' must be instance of Middleware'); } - /* @var $class Middleware */ + /* @var $class IMiddleware */ $middleware->handle($request); } } diff --git a/src/Pecee/SimpleRouter/RouterGroup.php b/src/Pecee/SimpleRouter/RouterGroup.php index 7db11f2d..71de05db 100644 --- a/src/Pecee/SimpleRouter/RouterGroup.php +++ b/src/Pecee/SimpleRouter/RouterGroup.php @@ -10,7 +10,7 @@ public function __construct() { parent::__construct(); } - protected function matchDomain() { + protected function matchDomain(Request $request) { if($this->domain !== null) { if(is_array($this->domain)) { @@ -20,7 +20,7 @@ protected function matchDomain() { for($i = 0; $i < $max; $i++) { $domain = $this->domain[$i]; - $parameters = $this->parseParameters($domain, request()->getHost(), '[^.]*'); + $parameters = $this->parseParameters($domain, $request->getHost(), '[^.]*'); if($parameters !== null) { $this->parameters = $parameters; @@ -31,7 +31,7 @@ protected function matchDomain() { return null; } - $parameters = $this->parseParameters($this->domain, request()->getHost(), '[^.]*'); + $parameters = $this->parseParameters($this->domain, $request->getHost(), '[^.]*'); if ($parameters !== null) { $this->parameters = $parameters; @@ -60,7 +60,7 @@ public function renderRoute(Request $request) { throw new RouterException('Method not allowed'); } - if($this->matchDomain() === null) { + if($this->matchDomain($request) === null) { return null; } diff --git a/src/Pecee/SimpleRouter/RouterResource.php b/src/Pecee/SimpleRouter/RouterResource.php index c10435e2..de70b17d 100644 --- a/src/Pecee/SimpleRouter/RouterResource.php +++ b/src/Pecee/SimpleRouter/RouterResource.php @@ -45,7 +45,7 @@ public function renderRoute(Request $request) { protected function call($method, $parameters) { $this->setCallback($this->controller . '@' . $method); $this->parameters = $parameters; - return $this; + return true; } public function matchRoute(Request $request) { diff --git a/src/Pecee/SimpleRouter/RouterRoute.php b/src/Pecee/SimpleRouter/RouterRoute.php index 5e6e34b1..ec306409 100644 --- a/src/Pecee/SimpleRouter/RouterRoute.php +++ b/src/Pecee/SimpleRouter/RouterRoute.php @@ -26,9 +26,9 @@ public function matchRoute(Request $request) { // Match on custom defined regular expression if($this->regexMatch) { $parameters = array(); - if(preg_match('/('.$this->regexMatch.')/is', request()->getHost() . $url, $parameters)) { + if(preg_match('/('.$this->regexMatch.')/is', $request->getHost() . $url, $parameters)) { $this->parameters = (!is_array($parameters[0]) ? array($parameters[0]) : $parameters[0]); - return $this; + return true; } return null; } @@ -46,7 +46,7 @@ public function matchRoute(Request $request) { $this->parameters = $parameters; } - return $this; + return true; } return null; diff --git a/src/Pecee/SimpleRouter/SimpleRouter.php b/src/Pecee/SimpleRouter/SimpleRouter.php index 55a9b226..c244d955 100644 --- a/src/Pecee/SimpleRouter/SimpleRouter.php +++ b/src/Pecee/SimpleRouter/SimpleRouter.php @@ -19,7 +19,7 @@ class SimpleRouter { * @throws RouterException */ public static function start($defaultNamespace = null) { - $router = RouterBase::GetInstance(); + $router = RouterBase::getInstance(); $router->setDefaultNamespace($defaultNamespace); $router->routeRequest(); }