This commit is contained in:
2021-09-06 17:39:13 +08:00
parent 730b840409
commit 76c425cf22
3 changed files with 16 additions and 13 deletions
+10 -8
View File
@@ -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('<h2>HTTP 405 Method allow</h2><hr><i>Powered by Swoole</i>', 405);
}
$handlerProviders = HandlerProviders::get($this->sourcePath, request()->getMethod());
$handlerProviders = HandlerProviders::get($this->sourcePath, $request->getMethod());
if (empty($handlerProviders)) {
throw new RequestException('<h2>HTTP 404 Not Found</h2><hr><i>Powered by Swoole</i>', 404);
}
return $handlerProviders->interpreter();
return $handlerProviders->interpreter($request);
}
}
+3 -3
View File
@@ -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);
}
+3 -2
View File
@@ -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('<h2>HTTP 404 Not Found</h2><hr><i>Powered by Swoole</i>', 404);
}
if (!(($responseData = $node->dispatch()) instanceof ResponseInterface)) {
if (!(($responseData = $node->dispatch($request)) instanceof ResponseInterface)) {
$responseData = $this->transferToResponse($responseData);
}
} catch (Error | \Throwable $exception) {