This commit is contained in:
2021-09-09 17:25:52 +08:00
parent 9a5aebcfd2
commit 6c133983fb
3 changed files with 22 additions and 8 deletions
+2 -2
View File
@@ -24,7 +24,7 @@ class Request implements RequestInterface
*/ */
private function __call__(): RequestMessage private function __call__(): RequestMessage
{ {
return Context::getContext(RequestMessage::class, new RequestMessage()); return Context::getContext(RequestInterface::class, new RequestMessage());
} }
@@ -47,7 +47,7 @@ class Request implements RequestInterface
{ {
Context::setContext(ResponseInterface::class, $response = new Response()); Context::setContext(ResponseInterface::class, $response = new Response());
Context::setContext(RequestMessage::class, RequestMessage::parseRequest($request)); Context::setContext(RequestInterface::class, RequestMessage::parseRequest($request));
return [Kiri::getDi()->get(Request::class), $response]; return [Kiri::getDi()->get(Request::class), $response];
} }
+20 -2
View File
@@ -6,9 +6,13 @@ namespace Server\Constrict;
use Http\Context\Context; use Http\Context\Context;
use JetBrains\PhpStorm\Pure; use JetBrains\PhpStorm\Pure;
use Kiri\Kiri;
use Psr\Http\Message\StreamInterface; use Psr\Http\Message\StreamInterface;
use Server\Message\Request as RequestMessage;
use Server\Message\Response as Psr7Response; use Server\Message\Response as Psr7Response;
use Server\RequestInterface;
use Server\ResponseInterface; use Server\ResponseInterface;
use Server\ServerManager;
use Server\SInterface\DownloadInterface; use Server\SInterface\DownloadInterface;
@@ -314,7 +318,11 @@ class Response implements ResponseInterface
*/ */
public function getClientId(): int public function getClientId(): int
{ {
return $this->__call__()->{__FUNCTION__}(); if (!Context::hasContext('client.id.property')) {
$request = Context::getContext(RequestInterface::class, new RequestMessage());
return Context::setContext('client.id.property', $request->getClientId());
}
return (int)Context::getContext('client.id.property');
} }
@@ -323,6 +331,16 @@ class Response implements ResponseInterface
*/ */
public function getClientInfo(): array public function getClientInfo(): array
{ {
return $this->__call__()->{__FUNCTION__}(); if (!Context::hasContext('client.info.property')) {
$request = Context::getContext(RequestInterface::class, new RequestMessage());
$server = Kiri::getDi()->get(ServerManager::class)->getServer();
$clientInfo = $server->getClientInfo($request->getClientId());
return Context::setContext('client.info.property', $clientInfo);
} }
return Context::getContext('client.info.property');
}
} }
-4
View File
@@ -21,10 +21,6 @@ interface ResponseInterface extends \Psr\Http\Message\ResponseInterface
public function file(string $path): DownloadInterface; public function file(string $path): DownloadInterface;
public function getClientId(): int;
public function getClientInfo(): array;
/** /**
* @param $responseData * @param $responseData
* @return string|array|bool|int|null * @return string|array|bool|int|null