改名
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
namespace Server\Constrict;
|
namespace Server\Constrict;
|
||||||
|
|
||||||
use Http\Context\Context;
|
use Http\Context\Context;
|
||||||
use Server\Message\Request as Psr7Request;
|
use Server\Message\Request as RequestMessage;
|
||||||
use Http\Context\Response;
|
use Http\Context\Response;
|
||||||
use Kiri\Kiri;
|
use Kiri\Kiri;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
@@ -11,7 +11,7 @@ use Server\RequestInterface;
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @mixin Psr7Request
|
* @mixin RequestMessage
|
||||||
*/
|
*/
|
||||||
class Request implements RequestInterface
|
class Request implements RequestInterface
|
||||||
{
|
{
|
||||||
@@ -24,10 +24,10 @@ class Request implements RequestInterface
|
|||||||
*/
|
*/
|
||||||
public function __call($name, $args)
|
public function __call($name, $args)
|
||||||
{
|
{
|
||||||
if (!Context::hasContext(Psr7Request::class)) {
|
if (!Context::hasContext(RequestMessage::class)) {
|
||||||
$request = Context::setContext(Psr7Request::class, new Psr7Request());
|
$request = Context::setContext(RequestMessage::class, new RequestMessage());
|
||||||
} else {
|
} else {
|
||||||
$request = Context::getContext(Psr7Request::class);
|
$request = Context::getContext(RequestMessage::class);
|
||||||
}
|
}
|
||||||
if (property_exists($request, $name)) {
|
if (property_exists($request, $name)) {
|
||||||
return $request->{$name};
|
return $request->{$name};
|
||||||
@@ -43,7 +43,7 @@ class Request implements RequestInterface
|
|||||||
public function __get($name): mixed
|
public function __get($name): mixed
|
||||||
{
|
{
|
||||||
// TODO: Change the autogenerated stub
|
// TODO: Change the autogenerated stub
|
||||||
return Context::getContext(Psr7Request::class)->{$name};
|
return Context::getContext(RequestMessage::class)->{$name};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ class Request implements RequestInterface
|
|||||||
{
|
{
|
||||||
Context::setContext(Response::class, new Response());
|
Context::setContext(Response::class, new Response());
|
||||||
|
|
||||||
Context::setContext(Psr7Request::class, Psr7Request::parseRequest($request));
|
Context::setContext(RequestMessage::class, RequestMessage::parseRequest($request));
|
||||||
|
|
||||||
return Kiri::getDi()->get(Request::class);
|
return Kiri::getDi()->get(Request::class);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,42 @@ class Request implements RequestInterface
|
|||||||
$message->serverRequest = $request;
|
$message->serverRequest = $request;
|
||||||
$message->version = $request->server['server_protocol'];
|
$message->version = $request->server['server_protocol'];
|
||||||
$message->stream = new Stream($request->getContent());
|
$message->stream = new Stream($request->getContent());
|
||||||
$message->headers = $request->header;
|
return $message->parseHeaders($request);
|
||||||
return $message;
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \Swoole\Http\Request $request
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
private function parseHeaders(\Swoole\Http\Request $request): static
|
||||||
|
{
|
||||||
|
foreach ($request->header as $key => $value) {
|
||||||
|
$this->addHeader($key, $value);
|
||||||
|
}
|
||||||
|
|
||||||
|
$index = strpos("\r\n\r\n", $request->getData());
|
||||||
|
$headers = explode("\r\n", substr($request->getData(), 0, $index));
|
||||||
|
|
||||||
|
array_shift($headers);
|
||||||
|
foreach ($headers as $header) {
|
||||||
|
[$key, $value] = explode(': ', $header);
|
||||||
|
$this->addHeader($key, $value);
|
||||||
|
}
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $key
|
||||||
|
* @param $value
|
||||||
|
*/
|
||||||
|
private function addHeader($key, $value)
|
||||||
|
{
|
||||||
|
$this->headers[$key] = [];
|
||||||
|
foreach (explode(';', $value) as $item) {
|
||||||
|
$this->headers[$key][] = $item;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user