This commit is contained in:
2021-09-24 18:53:14 +08:00
parent bfd9f07780
commit fce833ddde
2 changed files with 112 additions and 87 deletions
+21 -10
View File
@@ -26,19 +26,14 @@ class MiddlewareManager extends BaseObject
/**
* @param $class
* @param $method
* @param array|string $middlewares
* @param array|string|null $middlewares
* @return bool
*/
public static function add($class, $method, array|string $middlewares): bool
public static function add($class, $method, array|string|null $middlewares): bool
{
if (is_object($class)) {
$class = $class::class;
}
if (!isset(static::$_middlewares[$class])) {
static::$_middlewares[$class] = [];
}
if (!isset(static::$_middlewares[$class][$method])) {
static::$_middlewares[$class][$method] = new Iterator();
[$class, $method] = static::setDefault($class, $method);
if (empty($middlewares)) {
return false;
}
if (is_string($middlewares)) {
$middlewares = [$middlewares];
@@ -54,6 +49,22 @@ class MiddlewareManager extends BaseObject
}
private static function setDefault($class, $method): array
{
if (is_object($class)) {
$class = $class::class;
}
if (!isset(static::$_middlewares[$class])) {
static::$_middlewares[$class] = [];
}
if (!isset(static::$_middlewares[$class][$method])) {
static::$_middlewares[$class][$method] = new Iterator();
}
return [$class, $method];
}
/**
* @param $handler
* @return Iterator|null