diff --git a/core/Abstracts/BaseApplication.php b/core/Abstracts/BaseApplication.php index f77b9c6c..060fa29d 100644 --- a/core/Abstracts/BaseApplication.php +++ b/core/Abstracts/BaseApplication.php @@ -15,7 +15,6 @@ use Database\Connection; use Exception; use Http\Context\HttpHeaders; use Http\Context\HttpParams; -use Http\Context\Request; use Http\Context\Response; use Http\Route\Router; use Http\Server; @@ -485,7 +484,6 @@ abstract class BaseApplication extends Component 'async' => ['class' => Async::class], 'kafka-container' => ['class' => KafkaProvider::class], 'response' => ['class' => Response::class], - 'request' => ['class' => Request::class], 'shutdown' => ['class' => Shutdown::class], ]); } diff --git a/core/Abstracts/TraitApplication.php b/core/Abstracts/TraitApplication.php index 99894c59..11753207 100644 --- a/core/Abstracts/TraitApplication.php +++ b/core/Abstracts/TraitApplication.php @@ -8,7 +8,6 @@ use Annotation\Annotation as SAnnotation; use Database\DatabasesProviders; use Http\Client\Client; use Http\Client\Curl; -use Http\Context\Request; use Http\Context\Response; use Http\HttpFilter; use Http\Route\Router; @@ -27,7 +26,6 @@ use Kiri\Jwt\Jwt; * @property \Redis|Redis $redis * @property Server $server * @property Response $response - * @property Request $request * @property DatabasesProviders $db * @property Async $async * @property Logger $logger diff --git a/core/Jwt/JWTAuthMiddleware.php b/core/Jwt/JWTAuthMiddleware.php index 12c7013b..a1e7f141 100644 --- a/core/Jwt/JWTAuthMiddleware.php +++ b/core/Jwt/JWTAuthMiddleware.php @@ -7,7 +7,6 @@ namespace Kiri\Jwt; use Closure; use Exception; -use Http\Context\Request; use Http\Route\MiddlewareAbstracts; use Server\RequestInterface; use Kiri\Kiri; @@ -26,14 +25,14 @@ class JWTAuthMiddleware extends MiddlewareAbstracts /** - * @param Request $request + * @param RequestInterface $request * @param Closure $next * @return mixed * @throws Exception */ public function onHandler(RequestInterface $request, Closure $next): mixed { - $authorization = $request->header('Authorization'); + $authorization = $request->getHeaderLine('Authorization'); if (empty($authorization)) { throw new JWTAuthTokenException('JWT voucher cannot be empty.'); } diff --git a/http-helper/Context/Request.php b/http-helper/Context/Request.php deleted file mode 100644 index 6610c88c..00000000 --- a/http-helper/Context/Request.php +++ /dev/null @@ -1,413 +0,0 @@ -_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 - */ - public function getConnectInfo(): array|null - { - $server = di(ServerManager::class)->getServer(); - - return $server->getClientInfo($this->getClientId()); - } - - - /** - * @return mixed - */ - public function getStartTime(): mixed - { - return $this->getHeader('request_time_float'); - } - - - /** - * @return int - */ - public function getClientId(): int - { - return $this->_clientId ?? 0; - } - - - /** - * @return bool - */ - public function isFavicon(): bool - { - return $this->getRequestUri() === 'favicon.ico'; - } - - /** - * @return AuthIdentity|null - */ - public function getIdentity(): ?AuthIdentity - { - return $this->_grant; - } - - /** - * @return bool - */ - public function isHead(): bool - { - $result = $this->getRequestMethod() == 'HEAD'; - if ($result) { - $this->setStatus(101); - } else { - $this->setStatus(200); - } - return $result; - } - - /** - * @param $status - * @return mixed - */ - public function setStatus($status): mixed - { - return $this->statusCode = $status; - } - - /** - * @return int - */ - public function getStatus(): int - { - return $this->statusCode; - } - - /** - * @return bool - */ - public function getIsPackage(): bool - { - return $this->getRequestMethod() == 'package'; - } - - /** - * @return bool - */ - public function getIsReceive(): bool - { - return $this->getRequestMethod() == 'receive'; - } - - - /** - * @param AuthIdentity $value - * @return AuthIdentity - */ - public function setGrantAuthorization(AuthIdentity $value): AuthIdentity - { - return $this->_grant = $value; - } - - - /** - * @return bool - */ - public function hasGrant(): bool - { - return $this->_grant !== null; - } - - - /** - * @return string[] - */ - public function getExplode(): array - { - return $this->_explode; - } - - /** - * @return string - */ - #[Pure] public function getCurrent(): string - { - return current($this->explode); - } - - - /** - * @return string - */ - public function getUri(): string - { - return $this->_uri; - } - - /** - * @return string|null - */ - public function getPlatform(): ?string - { - if (!empty($this->_platform)) { - return $this->_platform; - } - $user = $this->getAgent(); - $match = preg_match('/\(.*\)?/', $user, $output); - if (!$match || count($output) < 1) { - return $this->_platform = 'unknown'; - } - $output = strtolower(array_shift($output)); - if (strpos('mac', $output)) { - return $this->_platform = 'mac'; - } else if (strpos('iphone', $output)) { - return $this->_platform = 'iphone'; - } else if (strpos('android', $output)) { - return $this->_platform = 'android'; - } else if (strpos('windows', $output)) { - return $this->_platform = 'windows'; - } else { - return $this->_platform = 'unknown'; - } - } - - /** - * @return bool - */ - public function isIos(): bool - { - return $this->getPlatform() == static::PLATFORM_IPHONE; - } - - /** - * @return bool - */ - public function isAndroid(): bool - { - return $this->getPlatform() == static::PLATFORM_ANDROID; - } - - /** - * @return bool - */ - public function isMacOs(): bool - { - return $this->getPlatform() == static::PLATFORM_MAC_OX; - } - - /** - * @return bool - */ - public function isWindows(): bool - { - return $this->getPlatform() == static::PLATFORM_WINDOWS; - } - - /** - * @return bool - */ - public function getIsPost(): bool - { - return $this->getRequestMethod() == 'POST'; - } - - /** - * @return bool - * @throws Exception - */ - public function getIsHttp(): bool - { - return true; - } - - /** - * @return bool - */ - public function getIsOption(): bool - { - return $this->getRequestMethod() == 'OPTIONS'; - } - - /** - * @return bool - */ - public function getIsGet(): bool - { - return $this->getRequestMethod() == 'GET'; - } - - /** - * @return bool - */ - public function getIsDelete(): bool - { - return $this->getRequestMethod() == 'DELETE'; - } - - /** - * @return string - * - * 获取请求类型 - */ - public function getMethod(): string - { - $method = $this->getRequestMethod(); - if (empty($method)) { - return 'GET'; - } - return $method; - } - - /** - * @return bool - */ - public function getIsCli(): bool - { - return $this->isCli === TRUE; - } - - /** - * @return mixed|null - */ - #[Pure] public function getIp(): string|null - { - $headers = $this->getHeaders(); - if (!empty($headers['remoteip'])) return $headers['remoteip']; - if (!empty($headers['x-forwarded-for'])) return $headers['x-forwarded-for']; - if (!empty($headers['request-ip'])) return $headers['request-ip']; - if (!empty($headers['remote_addr'])) return $headers['remote_addr']; - return NULL; - } - - /** - * @return string - */ - #[Pure] public function getRuntime(): string - { - return sprintf('%.5f', microtime(TRUE) - $this->startTime); - } - - /** - * @return string - */ - public function getDebug(): string - { - $mainstay = sprintf("%.6f", microtime(true)); // 带毫秒的时间戳 - - $timestamp = floatval($mainstay); // 时间戳 - $milliseconds = round(($mainstay - $timestamp) * 1000); // 毫秒 - - $datetime = date("Y-m-d H:i:s", (int)$timestamp) . '.' . $milliseconds; - - $tmp = [ - '[Debug ' . $datetime . '] ', - $this->getIp(), - $this->getUri(), - '`' . $this->getAgent() . '`', - $this->getRuntime() - ]; - return implode(' ', $tmp); - } - - - /** - * @param $router - * @return bool - */ - public function is($router): bool - { - return $this->getRequestUri() == $router; - } - - /** - * @return bool - */ - public function isNotFound(): bool - { - return Json::to(404, 'Page ' . $this->getRequestUri() . ' not found.'); - } - - - - -} diff --git a/http-helper/IInterface/After.php b/http-helper/IInterface/After.php deleted file mode 100644 index 66251c43..00000000 --- a/http-helper/IInterface/After.php +++ /dev/null @@ -1,22 +0,0 @@ -method == $request->getMethod()) { return true; diff --git a/http-helper/Route/Router.php b/http-helper/Route/Router.php index 0e641b10..7318c26e 100644 --- a/http-helper/Route/Router.php +++ b/http-helper/Route/Router.php @@ -7,7 +7,6 @@ use Annotation\Inject; use Closure; use Exception; use Http\Abstracts\HttpService; -use Http\Context\Request; use Http\Context\Response; use Http\Controller; use Http\IInterface\MiddlewareInterface; @@ -494,12 +493,12 @@ class Router extends HttpService implements RouterInterface /** - * @param Request $request + * @param RequestInterface $request * @return Node|null 树干搜索 * 树干搜索 * @throws Exception */ - public function find_path(Request $request): ?Node + public function find_path(RequestInterface $request): ?Node { $method = $request->getMethod(); diff --git a/kiri-gii/GiiInterceptor.php b/kiri-gii/GiiInterceptor.php deleted file mode 100644 index 0b532e12..00000000 --- a/kiri-gii/GiiInterceptor.php +++ /dev/null @@ -1,98 +0,0 @@ -input->get('name', null); - if (empty($managerName)) { - throw new Exception('文件名称不能为空~'); - } - $html = 'getImports($file, $class); - } catch (\Throwable $exception) { - return logger()->addError($exception, 'throwable'); - } - } else { - $html .= ' -use Closure; -use Http\Context\Request; -use Http\IInterface\Interceptor; -'; - } - - - $managerName = ucfirst($managerName); - $html .= ' - /** - * Class ' . $managerName . 'Interceptor - * @package App\Http\Interceptor - */ -class ' . $managerName . 'Interceptor implements Interceptor -{'; - - if (isset($class)) { - $html .= $this->getClassProperty($class); - $html .= $this->getClassMethods($class); - - $html .= ' - -}'; - } else { - $html .= ' - - /** - * @param Request $request - * @param Closure $closure - * @return mixed - */ - public function Interceptor(Request $request, Closure $closure) - { - return $closure($request); - } - - -}'; - } - - - if (file_exists($file)) { - throw new Exception('File exists.'); - } - - Kiri::writeFile($file, $html); - return [$managerName . 'Interceptor.php']; - } - -} diff --git a/kiri-gii/GiiLimits.php b/kiri-gii/GiiLimits.php deleted file mode 100644 index c2b76957..00000000 --- a/kiri-gii/GiiLimits.php +++ /dev/null @@ -1,75 +0,0 @@ -input->get('name', null); - if (empty($managerName)) { - throw new Exception('文件名称不能为空~'); - } - $html = '