mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 12:32:14 +00:00
[BUGFIX] Bugfixes and optimisations
- Fixed support for multiple middlewares using array. - Fixed match and parameters-match not not being merged when used on group.
This commit is contained in:
@@ -58,6 +58,7 @@ class RouterBase {
|
|||||||
|
|
||||||
$newPrefixes = $prefixes;
|
$newPrefixes = $prefixes;
|
||||||
$mergedSettings = array_merge($settings, $route->getMergeableSettings());
|
$mergedSettings = array_merge($settings, $route->getMergeableSettings());
|
||||||
|
|
||||||
if($route->getPrefix()) {
|
if($route->getPrefix()) {
|
||||||
array_push($newPrefixes, rtrim($route->getPrefix(), '/'));
|
array_push($newPrefixes, rtrim($route->getPrefix(), '/'));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,14 +22,12 @@ abstract class RouterEntry {
|
|||||||
protected $settings;
|
protected $settings;
|
||||||
protected $callback;
|
protected $callback;
|
||||||
protected $parameters;
|
protected $parameters;
|
||||||
protected $parametersRegex;
|
|
||||||
protected $regexMatch;
|
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
$this->settings = array();
|
$this->settings = array();
|
||||||
$this->settings['requestMethods'] = array();
|
$this->settings['requestMethods'] = array();
|
||||||
|
$this->settings['parametersRegex'] = array();
|
||||||
$this->parameters = array();
|
$this->parameters = array();
|
||||||
$this->parametersRegex = array();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -245,13 +243,25 @@ abstract class RouterEntry {
|
|||||||
|
|
||||||
public function loadMiddleware(Request $request) {
|
public function loadMiddleware(Request $request) {
|
||||||
if($this->getMiddleware()) {
|
if($this->getMiddleware()) {
|
||||||
$middleware = $this->loadClass($this->getMiddleware());
|
if(is_array($this->getMiddleware())) {
|
||||||
if (!($middleware instanceof IMiddleware)) {
|
foreach($this->getMiddleware() as $middleware) {
|
||||||
throw new RouterException($this->getMiddleware() . ' must be instance of Middleware');
|
$middleware = $this->loadClass($middleware);
|
||||||
}
|
if (!($middleware instanceof IMiddleware)) {
|
||||||
|
throw new RouterException($middleware . ' must be instance of Middleware');
|
||||||
|
}
|
||||||
|
|
||||||
/* @var $class Middleware */
|
/* @var $class Middleware */
|
||||||
$middleware->handle($request);
|
$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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user