From 79414255e09b625ffa48c0b43bbd395558f4d107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Mon, 13 Feb 2017 06:29:22 +0100 Subject: [PATCH 1/2] Development - Using `$request->setRewriteRoute($route);` rewrite-callback now renders any added middlewares on the route. - Rewrite callbacks now sets default-namespace on route, if defined. --- src/Pecee/Http/Request.php | 20 +++++++++++++++----- src/Pecee/SimpleRouter/Router.php | 14 ++++++++++---- src/Pecee/SimpleRouter/SimpleRouter.php | 9 +++++++++ 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/Pecee/Http/Request.php b/src/Pecee/Http/Request.php index 69e70c8..452a00a 100644 --- a/src/Pecee/Http/Request.php +++ b/src/Pecee/Http/Request.php @@ -3,8 +3,8 @@ namespace Pecee\Http; use Pecee\Http\Input\Input; use Pecee\SimpleRouter\Route\ILoadableRoute; -use Pecee\SimpleRouter\Route\IRoute; use Pecee\SimpleRouter\Route\RouteUrl; +use Pecee\SimpleRouter\SimpleRouter; class Request { @@ -237,13 +237,25 @@ class Request { $this->rewriteRoute = $route; + $namespace = SimpleRouter::getDefaultNamespace(); + + if ($namespace !== null) { + + if ($this->rewriteRoute->getNamespace() !== null) { + $namespace .= '\\' . $this->rewriteRoute->getNamespace(); + } + + $this->rewriteRoute->setDefaultNamespace($namespace); + + } + return $this; } /** * Get rewrite route * - * @return IRoute|null + * @return ILoadableRoute|null */ public function getRewriteRoute() { @@ -280,9 +292,7 @@ class Request */ public function setRewriteCallback($callback) { - $this->rewriteRoute = new RouteUrl($this->uri, $callback); - - return $this; + return $this->setRewriteRoute(new RouteUrl($this->uri, $callback)); } /** diff --git a/src/Pecee/SimpleRouter/Router.php b/src/Pecee/SimpleRouter/Router.php index 4670686..ebaf63a 100644 --- a/src/Pecee/SimpleRouter/Router.php +++ b/src/Pecee/SimpleRouter/Router.php @@ -249,8 +249,11 @@ class Router $route->loadMiddleware($this->request); - if ($this->request->getRewriteRoute() !== null) { - $this->request->getRewriteRoute()->renderRoute($this->request); + $rewriteRoute = $this->request->getRewriteRoute(); + + if ($rewriteRoute !== null) { + $rewriteRoute->loadMiddleware($this->request); + $rewriteRoute->renderRoute($this->request); return; } @@ -306,8 +309,11 @@ class Router if ($handler->handleError($this->request, $e) !== null) { - if ($this->request->getRewriteRoute() !== null) { - $this->request->getRewriteRoute()->renderRoute($this->request); + $rewriteRoute = $this->request->getRewriteRoute(); + + if ($rewriteRoute !== null) { + $rewriteRoute->loadMiddleware($this->request); + $rewriteRoute->renderRoute($this->request); return; } diff --git a/src/Pecee/SimpleRouter/SimpleRouter.php b/src/Pecee/SimpleRouter/SimpleRouter.php index 1f577a0..f331593 100644 --- a/src/Pecee/SimpleRouter/SimpleRouter.php +++ b/src/Pecee/SimpleRouter/SimpleRouter.php @@ -372,4 +372,13 @@ class SimpleRouter return $route; } + /** + * Get default namespace + * @return string + */ + public static function getDefaultNamespace() + { + return static::$defaultNamespace; + } + } \ No newline at end of file From c87298ee2486b6216db3c3e2f46b1edc44104f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Mon, 13 Feb 2017 06:45:07 +0100 Subject: [PATCH 2/2] Optimisations --- src/Pecee/SimpleRouter/Router.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pecee/SimpleRouter/Router.php b/src/Pecee/SimpleRouter/Router.php index ebaf63a..b2137ef 100644 --- a/src/Pecee/SimpleRouter/Router.php +++ b/src/Pecee/SimpleRouter/Router.php @@ -340,7 +340,7 @@ class Router if ($includeEmpty === false) { $getParams = array_filter($getParams, function ($item) { - return (!empty($item)); + return (trim($item) !== false); }); }