改名
This commit is contained in:
@@ -6,6 +6,7 @@ namespace PHPSTORM_META {
|
|||||||
use Snowflake\Di\Container;
|
use Snowflake\Di\Container;
|
||||||
|
|
||||||
override(Container::get(0), map('@'));
|
override(Container::get(0), map('@'));
|
||||||
|
override(Container::newObject(0), map('@'));
|
||||||
// override(\Hyperf\Utils\Context::get(0), map('@'));
|
// override(\Hyperf\Utils\Context::get(0), map('@'));
|
||||||
// override(\make(0), map('@'));
|
// override(\make(0), map('@'));
|
||||||
override(\di(0), map('@'));
|
override(\di(0), map('@'));
|
||||||
|
|||||||
@@ -16,6 +16,18 @@ namespace HttpServer\Http;
|
|||||||
class HttpHeaders
|
class HttpHeaders
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private array $_headers = [];
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $headers
|
||||||
|
*/
|
||||||
|
public function setHeaders(array $headers): void
|
||||||
|
{
|
||||||
|
$this->_headers = $headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
@@ -111,12 +123,11 @@ class HttpHeaders
|
|||||||
*/
|
*/
|
||||||
private function __handler__($name = null, $default = null): mixed
|
private function __handler__($name = null, $default = null): mixed
|
||||||
{
|
{
|
||||||
/** @var \Swoole\Http\Request $context */
|
$headers = Context::getContext(Request::class);
|
||||||
$context = Context::getContext(\Swoole\Http\Request::class);
|
|
||||||
if (!empty($name)) {
|
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 Exception;
|
||||||
use HttpServer\Exception\RequestException;
|
use HttpServer\Exception\RequestException;
|
||||||
use JetBrains\PhpStorm\Pure;
|
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Snowflake\Core\Json;
|
use Snowflake\Core\Json;
|
||||||
use Snowflake\Core\Xml;
|
use Snowflake\Core\Xml;
|
||||||
@@ -36,6 +35,47 @@ class HttpParams
|
|||||||
/** @var array|null */
|
/** @var array|null */
|
||||||
private ?array $_files = [];
|
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
|
* @return mixed
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@@ -414,10 +454,10 @@ class HttpParams
|
|||||||
*/
|
*/
|
||||||
private function __files__($name = null): mixed
|
private function __files__($name = null): mixed
|
||||||
{
|
{
|
||||||
/** @var \Swoole\Http\Request $content */
|
/** @var Request $content */
|
||||||
$content = Context::getContext(\Swoole\Http\Request::class);
|
$content = Context::getContext(Request::class);
|
||||||
if (!empty($name)) {
|
if (!empty($name)) {
|
||||||
return $content->files[$name] ?? null;
|
return $content->_f[$name] ?? null;
|
||||||
}
|
}
|
||||||
return $content->files ?? [];
|
return $content->files ?? [];
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-30
@@ -8,9 +8,9 @@ use Exception;
|
|||||||
use HttpServer\Abstracts\HttpService;
|
use HttpServer\Abstracts\HttpService;
|
||||||
use HttpServer\IInterface\AuthIdentity;
|
use HttpServer\IInterface\AuthIdentity;
|
||||||
use JetBrains\PhpStorm\Pure;
|
use JetBrains\PhpStorm\Pure;
|
||||||
|
use Server\RequestInterface;
|
||||||
use Server\ServerManager;
|
use Server\ServerManager;
|
||||||
use Snowflake\Core\Json;
|
use Snowflake\Core\Json;
|
||||||
use Snowflake\Snowflake;
|
|
||||||
|
|
||||||
defined('REQUEST_OK') or define('REQUEST_OK', 0);
|
defined('REQUEST_OK') or define('REQUEST_OK', 0);
|
||||||
defined('REQUEST_FAIL') or define('REQUEST_FAIL', 500);
|
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 $isPackage
|
||||||
* @property-read $isReceive
|
* @property-read $isReceive
|
||||||
*/
|
*/
|
||||||
class Request extends HttpService
|
class Request extends HttpService implements RequestInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
public int $fd = 0;
|
public int $fd = 0;
|
||||||
@@ -56,6 +56,8 @@ class Request extends HttpService
|
|||||||
|
|
||||||
public int $statusCode = 200;
|
public int $statusCode = 200;
|
||||||
|
|
||||||
|
private int $_clientId = 0;
|
||||||
|
|
||||||
/** @var string[] */
|
/** @var string[] */
|
||||||
private array $explode = [];
|
private array $explode = [];
|
||||||
|
|
||||||
@@ -74,6 +76,26 @@ class Request extends HttpService
|
|||||||
private ?AuthIdentity $_grant = null;
|
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
|
* @return array|null
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@@ -100,9 +122,7 @@ class Request extends HttpService
|
|||||||
*/
|
*/
|
||||||
public function getClientId(): int
|
public function getClientId(): int
|
||||||
{
|
{
|
||||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
return $this->_clientId ?? 0;
|
||||||
|
|
||||||
return $request->fd ?? 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -119,8 +139,7 @@ class Request extends HttpService
|
|||||||
*/
|
*/
|
||||||
public function getIdentity(): ?AuthIdentity
|
public function getIdentity(): ?AuthIdentity
|
||||||
{
|
{
|
||||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
return $this->_grant;
|
||||||
return $request->grant;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -176,8 +195,7 @@ class Request extends HttpService
|
|||||||
*/
|
*/
|
||||||
public function setGrantAuthorization($value)
|
public function setGrantAuthorization($value)
|
||||||
{
|
{
|
||||||
$request = Context::getContext(\Swoole\Http\Request::class);
|
return $this->_grant = $value;
|
||||||
return $request->grant = $value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -195,7 +213,7 @@ class Request extends HttpService
|
|||||||
*/
|
*/
|
||||||
public function getExplode(): array
|
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
|
public function getUri(): string
|
||||||
{
|
{
|
||||||
return $this->headers->getRequestUri();
|
return $this->_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -417,25 +435,8 @@ class Request extends HttpService
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
private array $_explode = [];
|
||||||
* @param \Swoole\Http\Request $request
|
private string $_uri = '';
|
||||||
* @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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ use HttpServer\IInterface\RouterInterface;
|
|||||||
use JetBrains\PhpStorm\Pure;
|
use JetBrains\PhpStorm\Pure;
|
||||||
use ReflectionException;
|
use ReflectionException;
|
||||||
use Rpc\Actuator;
|
use Rpc\Actuator;
|
||||||
|
use Server\RequestInterface;
|
||||||
use Snowflake\Abstracts\Config;
|
use Snowflake\Abstracts\Config;
|
||||||
use Snowflake\Exception\ConfigException;
|
use Snowflake\Exception\ConfigException;
|
||||||
use Snowflake\Exception\NotFindClassException;
|
use Snowflake\Exception\NotFindClassException;
|
||||||
@@ -522,12 +523,12 @@ class Router extends HttpService implements RouterInterface
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Request $request
|
* @param RequestInterface $request
|
||||||
* @return Node|null
|
* @return Node|null
|
||||||
* 树杈搜索
|
* 树杈搜索
|
||||||
* @throws RequestException
|
* @throws RequestException
|
||||||
*/
|
*/
|
||||||
public function Branch_search(Request $request): ?Node
|
public function Branch_search(RequestInterface $request): ?Node
|
||||||
{
|
{
|
||||||
$node = $this->tree_search($request->getExplode(), $request->getMethod());
|
$node = $this->tree_search($request->getExplode(), $request->getMethod());
|
||||||
if ($node instanceof Node) {
|
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)
|
public function onRequest(Request $request, Response $response)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$node = $this->router->Branch_search(HSRequest::create($request));
|
$node = $this->router->Branch_search(Constrict\Request::create($request));
|
||||||
if (!($node instanceof Node)) {
|
if (!($node instanceof Node)) {
|
||||||
throw new RequestException('<h2>HTTP 404 Not Found</h2><hr><i>Powered by Swoole</i>', 404);
|
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 Annotation\Annotation;
|
||||||
use HttpServer\Http\Context;
|
use HttpServer\Http\Context;
|
||||||
use HttpServer\Http\HttpParams;
|
use HttpServer\Http\HttpParams;
|
||||||
use HttpServer\Http\Request;
|
use Server\Constrict\Request;
|
||||||
use HttpServer\Http\Response as HttpResponse;
|
use HttpServer\Http\Response as HttpResponse;
|
||||||
use HttpServer\Route\Router;
|
use HttpServer\Route\Router;
|
||||||
use JetBrains\PhpStorm\Pure;
|
use JetBrains\PhpStorm\Pure;
|
||||||
@@ -818,8 +818,10 @@ if (!function_exists('isService')) {
|
|||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @return bool
|
* @return bool
|
||||||
|
* @throws NotFindClassException
|
||||||
|
* @throws ReflectionException
|
||||||
*/
|
*/
|
||||||
#[Pure] function isService(string $name): bool
|
function isService(string $name): bool
|
||||||
{
|
{
|
||||||
return Snowflake::app()->has($name);
|
return Snowflake::app()->has($name);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user