改名
This commit is contained in:
@@ -6,6 +6,7 @@ namespace PHPSTORM_META {
|
||||
use Snowflake\Di\Container;
|
||||
|
||||
override(Container::get(0), map('@'));
|
||||
override(Container::newObject(0), map('@'));
|
||||
// override(\Hyperf\Utils\Context::get(0), map('@'));
|
||||
// override(\make(0), map('@'));
|
||||
override(\di(0), map('@'));
|
||||
|
||||
@@ -16,6 +16,18 @@ namespace HttpServer\Http;
|
||||
class HttpHeaders
|
||||
{
|
||||
|
||||
private array $_headers = [];
|
||||
|
||||
|
||||
/**
|
||||
* @param array $headers
|
||||
*/
|
||||
public function setHeaders(array $headers): void
|
||||
{
|
||||
$this->_headers = $headers;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
@@ -111,12 +123,11 @@ class HttpHeaders
|
||||
*/
|
||||
private function __handler__($name = null, $default = null): mixed
|
||||
{
|
||||
/** @var \Swoole\Http\Request $context */
|
||||
$context = Context::getContext(\Swoole\Http\Request::class);
|
||||
$headers = Context::getContext(Request::class);
|
||||
if (!empty($name)) {
|
||||
return $context->header[$name] ?? $default;
|
||||
return $headers->_headers[$name] ?? $default;
|
||||
}
|
||||
return $context->header;
|
||||
return $headers->_headers;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ namespace HttpServer\Http;
|
||||
|
||||
use Exception;
|
||||
use HttpServer\Exception\RequestException;
|
||||
use JetBrains\PhpStorm\Pure;
|
||||
use ReflectionException;
|
||||
use Snowflake\Core\Json;
|
||||
use Snowflake\Core\Xml;
|
||||
@@ -36,6 +35,47 @@ class HttpParams
|
||||
/** @var array|null */
|
||||
private ?array $_files = [];
|
||||
|
||||
|
||||
private mixed $_rawContent = '';
|
||||
|
||||
/**
|
||||
* @param array|null $gets
|
||||
*/
|
||||
public function setGets(?array $gets): void
|
||||
{
|
||||
$this->_gets = $gets;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $posts
|
||||
*/
|
||||
public function setPosts(mixed $posts): void
|
||||
{
|
||||
$this->_posts = $posts;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|null $files
|
||||
*/
|
||||
public function setFiles(?array $files): void
|
||||
{
|
||||
$this->_files = $files;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed|string $rawContent
|
||||
*/
|
||||
public function setRawContent(mixed $rawContent, string $context_type): void
|
||||
{
|
||||
if (str_contains($context_type, 'json')) {
|
||||
$this->_rawContent = json_decode($rawContent, true);
|
||||
} else if (str_contains($context_type, 'xml')) {
|
||||
$this->_rawContent = Xml::toArray($rawContent);
|
||||
} else {
|
||||
$this->_rawContent = $rawContent;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed
|
||||
* @throws Exception
|
||||
@@ -414,10 +454,10 @@ class HttpParams
|
||||
*/
|
||||
private function __files__($name = null): mixed
|
||||
{
|
||||
/** @var \Swoole\Http\Request $content */
|
||||
$content = Context::getContext(\Swoole\Http\Request::class);
|
||||
/** @var Request $content */
|
||||
$content = Context::getContext(Request::class);
|
||||
if (!empty($name)) {
|
||||
return $content->files[$name] ?? null;
|
||||
return $content->_f[$name] ?? null;
|
||||
}
|
||||
return $content->files ?? [];
|
||||
}
|
||||
|
||||
+31
-30
@@ -8,9 +8,9 @@ use Exception;
|
||||
use HttpServer\Abstracts\HttpService;
|
||||
use HttpServer\IInterface\AuthIdentity;
|
||||
use JetBrains\PhpStorm\Pure;
|
||||
use Server\RequestInterface;
|
||||
use Server\ServerManager;
|
||||
use Snowflake\Core\Json;
|
||||
use Snowflake\Snowflake;
|
||||
|
||||
defined('REQUEST_OK') or define('REQUEST_OK', 0);
|
||||
defined('REQUEST_FAIL') or define('REQUEST_FAIL', 500);
|
||||
@@ -30,7 +30,7 @@ defined('REQUEST_FAIL') or define('REQUEST_FAIL', 500);
|
||||
* @property-read $isPackage
|
||||
* @property-read $isReceive
|
||||
*/
|
||||
class Request extends HttpService
|
||||
class Request extends HttpService implements RequestInterface
|
||||
{
|
||||
|
||||
public int $fd = 0;
|
||||
@@ -56,6 +56,8 @@ class Request extends HttpService
|
||||
|
||||
public int $statusCode = 200;
|
||||
|
||||
private int $_clientId = 0;
|
||||
|
||||
/** @var string[] */
|
||||
private array $explode = [];
|
||||
|
||||
@@ -74,6 +76,26 @@ class Request extends HttpService
|
||||
private ?AuthIdentity $_grant = null;
|
||||
|
||||
|
||||
/**
|
||||
* @param $id
|
||||
*/
|
||||
public function setClientId($id)
|
||||
{
|
||||
$this->_clientId = $id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $request_uri
|
||||
*/
|
||||
public function setUri(string $request_uri)
|
||||
{
|
||||
$request_uri = array_filter(explode('/', $request_uri));
|
||||
|
||||
$this->_explode = $request_uri;
|
||||
$this->_uri = '/' . implode('/', $request_uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|null
|
||||
* @throws Exception
|
||||
@@ -100,9 +122,7 @@ class Request extends HttpService
|
||||
*/
|
||||
public function getClientId(): int
|
||||
{
|
||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
||||
|
||||
return $request->fd ?? 0;
|
||||
return $this->_clientId ?? 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -119,8 +139,7 @@ class Request extends HttpService
|
||||
*/
|
||||
public function getIdentity(): ?AuthIdentity
|
||||
{
|
||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
||||
return $request->grant;
|
||||
return $this->_grant;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,8 +195,7 @@ class Request extends HttpService
|
||||
*/
|
||||
public function setGrantAuthorization($value)
|
||||
{
|
||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
||||
return $request->grant = $value;
|
||||
return $this->_grant = $value;
|
||||
}
|
||||
|
||||
|
||||
@@ -195,7 +213,7 @@ class Request extends HttpService
|
||||
*/
|
||||
public function getExplode(): array
|
||||
{
|
||||
return Context::getContext(\Swoole\Http\Request::class)->explode;
|
||||
return $this->_explode;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -212,7 +230,7 @@ class Request extends HttpService
|
||||
*/
|
||||
public function getUri(): string
|
||||
{
|
||||
return $this->headers->getRequestUri();
|
||||
return $this->_uri;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -417,25 +435,8 @@ class Request extends HttpService
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Swoole\Http\Request $request
|
||||
* @return Request
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function create(\Swoole\Http\Request $request): Request
|
||||
{
|
||||
$request->header = array_merge($request->header, $request->server);
|
||||
|
||||
$request_uri = array_filter(explode('/', $request->header['request_uri']));
|
||||
$request->header['request_uri'] = '/' . implode('/', $request_uri);
|
||||
$request->explode = $request_uri;
|
||||
|
||||
Context::setContext(\Swoole\Http\Request::class, $request);
|
||||
|
||||
Context::setContext(Response::class, new Response());
|
||||
|
||||
return Snowflake::getDi()->get(Request::class);
|
||||
}
|
||||
private array $_explode = [];
|
||||
private string $_uri = '';
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ use HttpServer\IInterface\RouterInterface;
|
||||
use JetBrains\PhpStorm\Pure;
|
||||
use ReflectionException;
|
||||
use Rpc\Actuator;
|
||||
use Server\RequestInterface;
|
||||
use Snowflake\Abstracts\Config;
|
||||
use Snowflake\Exception\ConfigException;
|
||||
use Snowflake\Exception\NotFindClassException;
|
||||
@@ -522,12 +523,12 @@ class Router extends HttpService implements RouterInterface
|
||||
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param RequestInterface $request
|
||||
* @return Node|null
|
||||
* 树杈搜索
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function Branch_search(Request $request): ?Node
|
||||
public function Branch_search(RequestInterface $request): ?Node
|
||||
{
|
||||
$node = $this->tree_search($request->getExplode(), $request->getMethod());
|
||||
if ($node instanceof Node) {
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace Server\Constrict;
|
||||
|
||||
use HttpServer\Http\Context;
|
||||
use HttpServer\Http\HttpHeaders;
|
||||
use HttpServer\Http\HttpParams;
|
||||
use HttpServer\Http\Request as HttpResponse;
|
||||
use HttpServer\Http\Response;
|
||||
use ReflectionException;
|
||||
use Server\RequestInterface;
|
||||
use Snowflake\Exception\NotFindClassException;
|
||||
use Snowflake\Snowflake;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
class Request implements RequestInterface
|
||||
{
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param $args
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($name, $args)
|
||||
{
|
||||
return Context::getContext(HttpResponse::class)->{$name}(...$args);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param \Swoole\Http\Request $request
|
||||
* @return Request
|
||||
* @throws ReflectionException
|
||||
* @throws NotFindClassException
|
||||
*/
|
||||
public static function create(\Swoole\Http\Request $request): RequestInterface
|
||||
{
|
||||
$sRequest = new HttpResponse();
|
||||
$sRequest->setUri($request->header['request_uri']);
|
||||
$sRequest->setClientId($request->fd);
|
||||
|
||||
$sRequest->headers = new HttpHeaders();
|
||||
$sRequest->headers->setHeaders(array_merge($request->header, $request->server));
|
||||
|
||||
$sRequest->params = new HttpParams();
|
||||
$sRequest->params->setRawContent($request->rawContent(), $sRequest->headers->getContentType());
|
||||
$sRequest->params->setFiles($request->files);
|
||||
$sRequest->params->setPosts($request->post);
|
||||
$sRequest->params->setGets($request->get);
|
||||
|
||||
Context::setContext(Request::class, $sRequest);
|
||||
|
||||
Context::setContext(Response::class, new Response());
|
||||
|
||||
return Snowflake::getDi()->get(Request::class);
|
||||
}
|
||||
}
|
||||
@@ -117,7 +117,7 @@ class HTTPServerListener extends Abstracts\Server
|
||||
public function onRequest(Request $request, Response $response)
|
||||
{
|
||||
try {
|
||||
$node = $this->router->Branch_search(HSRequest::create($request));
|
||||
$node = $this->router->Branch_search(Constrict\Request::create($request));
|
||||
if (!($node instanceof Node)) {
|
||||
throw new RequestException('<h2>HTTP 404 Not Found</h2><hr><i>Powered by Swoole</i>', 404);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace Server;
|
||||
|
||||
|
||||
use HttpServer\Http\Request;
|
||||
|
||||
/**
|
||||
*
|
||||
* @mixin Request
|
||||
*/
|
||||
interface RequestInterface
|
||||
{
|
||||
|
||||
}
|
||||
+4
-2
@@ -6,7 +6,7 @@ defined('APP_PATH') or define('APP_PATH', realpath(__DIR__ . '/../../'));
|
||||
use Annotation\Annotation;
|
||||
use HttpServer\Http\Context;
|
||||
use HttpServer\Http\HttpParams;
|
||||
use HttpServer\Http\Request;
|
||||
use Server\Constrict\Request;
|
||||
use HttpServer\Http\Response as HttpResponse;
|
||||
use HttpServer\Route\Router;
|
||||
use JetBrains\PhpStorm\Pure;
|
||||
@@ -818,8 +818,10 @@ if (!function_exists('isService')) {
|
||||
/**
|
||||
* @param string $name
|
||||
* @return bool
|
||||
* @throws NotFindClassException
|
||||
* @throws ReflectionException
|
||||
*/
|
||||
#[Pure] function isService(string $name): bool
|
||||
function isService(string $name): bool
|
||||
{
|
||||
return Snowflake::app()->has($name);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user