From 4d58fbf7b5800793b305f3fc2e9a67c28ee09911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Sat, 19 Mar 2016 19:14:07 +0100 Subject: [PATCH] [TASK] Added rewrite_uri parameter to Request class --- src/Pecee/SimpleRouter/RouterBase.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index 5edc64a..c5dbb35 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -27,7 +27,7 @@ class RouterBase { $this->backStack = array(); $this->controllerUrlMap = array(); $this->baseCsrfVerifier = new BaseCsrfVerifier(); - $this->request = new Request(); + $this->request = Request::getInstance(); $this->bootManagers = array(); $csrf = new CsrfToken(); @@ -88,7 +88,7 @@ class RouterBase { $this->currentRoute = $route; - if($route instanceof RouterGroup && $route->matchRoute($this->request) && is_callable($route->getCallback())) { + if($route instanceof RouterGroup && is_callable($route->getCallback())) { $group = $route; $route->renderRoute($this->request); $mergedSettings = array_merge($route->getMergeableSettings(), $settings); @@ -108,6 +108,8 @@ class RouterBase { public function routeRequest() { + $originalUri = $this->request->getUri(); + // Initialize boot-managers if(count($this->bootManagers)) { /* @var $manager RouterBootManager */ @@ -151,6 +153,9 @@ class RouterBase { $routeNotAllowed = false; + $this->request->rewrite_uri = $this->request->uri; + $this->request->setUri($originalUri); + $this->request->loadedRoute = $route; $route->loadMiddleware($this->request); @@ -372,7 +377,7 @@ class RouterBase { return $this->processUrl($route, $route->getMethod(), $parameters, $getParams); } - if($route instanceof RouterRoute && stripos($route->getCallback(), '@') !== false) { + if($route instanceof RouterRoute && !is_callable($route->getCallback()) && stripos($route->getCallback(), '@') !== false) { $c = $route->getCallback(); } else if($route instanceof RouterController || $route instanceof RouterResource) { $c = $route->getController();