diff --git a/http-handler/Abstracts/MiddlewareManager.php b/http-handler/Abstracts/MiddlewareManager.php index 0d0df477..317f86e1 100644 --- a/http-handler/Abstracts/MiddlewareManager.php +++ b/http-handler/Abstracts/MiddlewareManager.php @@ -5,6 +5,7 @@ namespace Http\Handler\Abstracts; use Closure; +use Co\Iterator; use Kiri\Abstracts\BaseObject; @@ -33,12 +34,12 @@ class MiddlewareManager extends BaseObject static::$_middlewares[$class] = []; } if (!isset(static::$_middlewares[$class][$method])) { - static::$_middlewares[$class][$method] = []; + static::$_middlewares[$class][$method] = new Iterator(); } if (is_string($middlewares)) { $middlewares = [$middlewares]; } - $source = &static::$_middlewares[$class][$method]; + $source = static::$_middlewares[$class][$method]; foreach ($middlewares as $middleware) { if (isset($source[$middleware])) { continue; diff --git a/http-server/Service/Http.php b/http-server/Service/Http.php index 4ec93ebf..b7bc0b59 100644 --- a/http-server/Service/Http.php +++ b/http-server/Service/Http.php @@ -114,7 +114,7 @@ class Http implements OnCloseInterface, OnConnectInterface, OnRequestInterface { $middlewares = MiddlewareManager::get($handler->callback); - $dispatcher = new Dispatcher($handler, empty($middlewares) ? null : new Iterator($middlewares)); + $dispatcher = new Dispatcher($handler, $middlewares); return $dispatcher->handle($PsrRequest); }