diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index 8546a0d..9e88826 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -58,6 +58,7 @@ class RouterBase { $newPrefixes = $prefixes; $mergedSettings = array_merge($settings, $route->getMergeableSettings()); + if($route->getPrefix()) { array_push($newPrefixes, rtrim($route->getPrefix(), '/')); } diff --git a/src/Pecee/SimpleRouter/RouterEntry.php b/src/Pecee/SimpleRouter/RouterEntry.php index 4a73043..8dc7971 100644 --- a/src/Pecee/SimpleRouter/RouterEntry.php +++ b/src/Pecee/SimpleRouter/RouterEntry.php @@ -22,14 +22,12 @@ abstract class RouterEntry { protected $settings; protected $callback; protected $parameters; - protected $parametersRegex; - protected $regexMatch; public function __construct() { $this->settings = array(); $this->settings['requestMethods'] = array(); + $this->settings['parametersRegex'] = array(); $this->parameters = array(); - $this->parametersRegex = array(); } /** @@ -245,13 +243,25 @@ abstract class RouterEntry { public function loadMiddleware(Request $request) { if($this->getMiddleware()) { - $middleware = $this->loadClass($this->getMiddleware()); - if (!($middleware instanceof IMiddleware)) { - throw new RouterException($this->getMiddleware() . ' must be instance of Middleware'); - } + if(is_array($this->getMiddleware())) { + foreach($this->getMiddleware() as $middleware) { + $middleware = $this->loadClass($middleware); + if (!($middleware instanceof IMiddleware)) { + throw new RouterException($middleware . ' must be instance of Middleware'); + } - /* @var $class Middleware */ - $middleware->handle($request); + /* @var $class Middleware */ + $middleware->handle($request); + } + } else { + $middleware = $this->loadClass($this->getMiddleware()); + if (!($middleware instanceof IMiddleware)) { + throw new RouterException($this->getMiddleware() . ' must be instance of Middleware'); + } + + /* @var $class Middleware */ + $middleware->handle($request); + } } }