diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index c350c74..622cfb1 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -268,8 +268,6 @@ class RouterBase { protected function handleException(\Exception $e) { - $request = clone $this->request; - /* @var $route RouterGroup */ foreach ($this->exceptionHandlers as $route) { $handler = $route->getExceptionHandler(); @@ -279,20 +277,11 @@ class RouterBase { throw new RouterException('Exception handler must implement the IExceptionHandler interface.'); } - $request = $handler->handleError($request, $this->loadedRoute, $e); - $request = ($request === null) ? $this->request : $request; - - if(!in_array($request->getUri(), $this->routeChanges)) { + $request = $handler->handleError($this->request, $this->loadedRoute, $e); + if($request !== null && !in_array($request->getUri(), $this->routeChanges)) { $this->routeChanges[] = $request->getUri(); - - if($request->getUri() !== $this->request->getUri()) { - $this->routeRequest($request); - } else { - $this->loadedRoute->renderRoute($request); - } - - return; + $this->routeRequest($request); } } diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index 376ed7d..7e37f2b 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -269,7 +269,7 @@ abstract class RouterEntry { return null; } - public function loadMiddleware(Request $request, RouterRoute &$route) { + public function loadMiddleware(Request $request, RouterEntry &$route) { if(count($this->getMiddleware())) { foreach($this->getMiddleware() as $middleware) { $middleware = $this->loadClass($middleware);