From 4dd0739df9d16ba9c11b8e0496df8af9731637dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Sun, 17 Jan 2016 04:56:29 +0100 Subject: [PATCH] [BUGFIX] Fixed minor errors with optional parameter when using getRoute(). --- src/Pecee/SimpleRouter/RouterEntry.php | 6 +++++- src/Pecee/SimpleRouter/RouterRoute.php | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index 4700b59..d17dc7c 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -376,7 +376,11 @@ abstract class RouterEntry { throw new RouterException(sprintf('Method %s does not exist in class %s', $method, $className), 404); } - call_user_func_array(array($class, $method), $this->getParameters()); + $parameters = array_filter($this->getParameters(), function($var){ + return !is_null($var); + }); + + call_user_func_array(array($class, $method), $parameters); return $class; } diff --git a/src/Pecee/SimpleRouter/RouterRoute.php b/src/Pecee/SimpleRouter/RouterRoute.php index 66fe161..2c0cc09 100644 --- a/src/Pecee/SimpleRouter/RouterRoute.php +++ b/src/Pecee/SimpleRouter/RouterRoute.php @@ -40,10 +40,18 @@ class RouterRoute extends RouterEntry { $parameters = $this->parseParameters($route, $url); if($parameters !== null) { - $this->parameters = $parameters; + + if(is_array($this->parameters)) { + $this->parameters = array_merge($this->parameters, $parameters); + } else { + $this->parameters = $parameters; + } + return true; } + + return null; }