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
{
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(RequestMessage::class, RequestMessage::parseRequest($request));
Context::setContext(RequestInterface::class, RequestMessage::parseRequest($request));
return [Kiri::getDi()->get(Request::class), $response];
}
+20 -2
View File
@@ -6,9 +6,13 @@ namespace Server\Constrict;
use Http\Context\Context;
use JetBrains\PhpStorm\Pure;
use Kiri\Kiri;
use Psr\Http\Message\StreamInterface;
use Server\Message\Request as RequestMessage;
use Server\Message\Response as Psr7Response;
use Server\RequestInterface;
use Server\ResponseInterface;
use Server\ServerManager;
use Server\SInterface\DownloadInterface;
@@ -314,7 +318,11 @@ class Response implements ResponseInterface
*/
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
{
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 getClientId(): int;
public function getClientInfo(): array;
/**
* @param $responseData
* @return string|array|bool|int|null