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) {