This commit is contained in:
2023-04-21 17:40:40 +08:00
parent c12606d233
commit 52872eb6f7
+25 -10
View File
@@ -166,21 +166,36 @@ class RouterCollector implements \ArrayAccess, \IteratorAggregate
public function registerMiddleware(string $class, string $method): void public function registerMiddleware(string $class, string $method): void
{ {
$middlewares = Kiri::service()->get('request')->middlewares; $middlewares = Kiri::service()->get('request')->middlewares;
$middlewares = [...$middlewares, ...array_column($this->groupTack, 'middleware')];
if (count($middlewares) > 0) { if (count($middlewares) > 0) {
$manager = Kiri::getDi()->get(Middleware::class); $this->appendMiddleware($middlewares, $class, $method);
foreach ($middlewares as $middleware) { }
if (is_string($middleware)) { $middlewares = array_column($this->groupTack, 'middleware');
$middleware = [$middleware]; if (count($middlewares) > 0) {
} $this->appendMiddleware($middlewares, $class, $method);
foreach ($middleware as $value) {
$manager->set($class, $method, $value);
}
}
} }
} }
/**
* @param array $middlewares
* @param $class
* @param $method
* @return void
* @throws
*/
private function appendMiddleware(array $middlewares, $class, $method): void
{
$manager = Kiri::getDi()->get(Middleware::class);
foreach ($middlewares as $middleware) {
if (is_string($middleware)) {
$middleware = [$middleware];
}
foreach ($middleware as $value) {
$manager->set($class, $method, $value);
}
}
}
/** /**
* @param string $path * @param string $path
* @param string $method * @param string $method