diff --git a/http-helper/Route/Node.php b/http-helper/Route/Node.php index d4f97f10..eba17073 100644 --- a/http-helper/Route/Node.php +++ b/http-helper/Route/Node.php @@ -313,20 +313,22 @@ class Node } - /** - * @return mixed - * @throws Exception - */ - public function dispatch(): mixed + /** + * @param RequestInterface $request + * @return mixed + * @throws RequestException + * @throws Exception + */ + public function dispatch(RequestInterface $request): mixed { - if (!in_array(request()->getMethod(), $this->method)) { + if (!in_array($request->getMethod(), $this->method)) { throw new RequestException('

HTTP 405 Method allow


Powered by Swoole', 405); } - $handlerProviders = HandlerProviders::get($this->sourcePath, request()->getMethod()); + $handlerProviders = HandlerProviders::get($this->sourcePath, $request->getMethod()); if (empty($handlerProviders)) { throw new RequestException('

HTTP 404 Not Found


Powered by Swoole', 404); } - return $handlerProviders->interpreter(); + return $handlerProviders->interpreter($request); } } diff --git a/http-helper/Route/Pipeline.php b/http-helper/Route/Pipeline.php index 46f522af..305567df 100644 --- a/http-helper/Route/Pipeline.php +++ b/http-helper/Route/Pipeline.php @@ -127,12 +127,12 @@ class Pipeline /** + * @param $request * @return mixed - * @throws Exception */ - public function interpreter(): mixed + public function interpreter($request): mixed { - return call_user_func($this->pipeline, request()); + return call_user_func($this->pipeline, $request); } diff --git a/http-server/Service/Http.php b/http-server/Service/Http.php index 5fb0bc70..fdbb453c 100644 --- a/http-server/Service/Http.php +++ b/http-server/Service/Http.php @@ -43,11 +43,12 @@ class Http extends \Server\Abstracts\Http implements OnClose, OnConnect { // TODO: Implement onRequest() method. try { - $node = $this->router->Branch_search(\Server\Constrict\Request::create($request)); + $request = \Server\Constrict\Request::create($request); + $node = $this->router->Branch_search($request); if (!($node instanceof Node)) { throw new RequestException('

HTTP 404 Not Found


Powered by Swoole', 404); } - if (!(($responseData = $node->dispatch()) instanceof ResponseInterface)) { + if (!(($responseData = $node->dispatch($request)) instanceof ResponseInterface)) { $responseData = $this->transferToResponse($responseData); } } catch (Error | \Throwable $exception) {