diff --git a/ClientAbstracts.php b/ClientAbstracts.php index 1e7170c..1bad621 100644 --- a/ClientAbstracts.php +++ b/ClientAbstracts.php @@ -17,13 +17,13 @@ defined('SPLIT_URL') or define('SPLIT_URL', '/(http[s]?:\/\/)?(([\w\-_]+\.)+\w+( abstract class ClientAbstracts implements IClient { - const POST = 'post'; - const UPLOAD = 'upload'; - const GET = 'get'; - const DELETE = 'delete'; - const OPTIONS = 'options'; - const HEAD = 'head'; - const PUT = 'put'; + const string POST = 'post'; + const string UPLOAD = 'upload'; + const string GET = 'get'; + const string DELETE = 'delete'; + const string OPTIONS = 'options'; + const string HEAD = 'head'; + const string PUT = 'put'; private string $host = ''; private array $header = []; @@ -143,10 +143,10 @@ abstract class ClientAbstracts implements IClient /** - * @param $bool + * @param bool $bool * @return $this */ - public function withVerifyPeer($bool): static + public function withVerifyPeer(bool $bool): static { $this->verifyPeer = $bool; return $this; @@ -227,11 +227,11 @@ abstract class ClientAbstracts implements IClient /** - * @param $host - * @param $port + * @param string $host + * @param int $port * @param false $isSSL */ - public function __construct($host, $port, bool $isSSL = FALSE) + public function __construct(string $host, int $port, bool $isSSL = FALSE) { $this->withHost($host)->withPort($port)->withIsSSL($isSSL); } @@ -405,11 +405,11 @@ abstract class ClientAbstracts implements IClient } /** - * @param $key - * @param $value + * @param string $key + * @param string|array $value * @return ClientAbstracts */ - public function withAddedHeader($key, $value): static + public function withAddedHeader(string $key, string|array $value): static { $this->header[$key] = $value; return $this; @@ -615,10 +615,10 @@ abstract class ClientAbstracts implements IClient /** - * @param $host + * @param string $host * @return string|string[] */ - protected function replaceHost($host): array|string + protected function replaceHost(string $host): array|string { if ($this->isHttp($host)) { return str_replace('http://', '', $host); @@ -631,43 +631,43 @@ abstract class ClientAbstracts implements IClient /** - * @param $url + * @param string $url * @return false|int */ - protected function checkIsIp($url): bool|int + protected function checkIsIp(string $url): bool|int { return preg_match('/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/', $url); } /** - * @param $url + * @param string $url * @return bool */ - protected function isHttp($url): bool + protected function isHttp(string $url): bool { return str_starts_with($url, 'http://'); } /** - * @param $url + * @param string $url * @return bool */ - protected function isHttps($url): bool + protected function isHttps(string $url): bool { return str_starts_with($url, 'https://'); } /** - * @param $newData + * @param array|string $newData * @return string|null */ - protected function mergeParams($newData): ?string + protected function mergeParams(array|string $newData): ?string { if (is_array($newData)) { return json_encode($newData, JSON_UNESCAPED_UNICODE); } - return (string)$newData; + return $newData; } @@ -701,12 +701,12 @@ abstract class ClientAbstracts implements IClient } /** - * @param $arr + * @param array|string $arr * * @return array|string * 将请求参数进行编码 */ - protected function paramEncode($arr): array|string + protected function paramEncode(array|string $arr): array|string { if (!is_array($arr)) { return $arr; @@ -733,11 +733,11 @@ abstract class ClientAbstracts implements IClient /** - * @param $path - * @param $params + * @param string $path + * @param array|string $params * @return string */ - protected function joinGetParams($path, $params): string + protected function joinGetParams(string $path, array|string $params): string { if (empty($params)) { return $path; diff --git a/CoroutineClient.php b/CoroutineClient.php index dd87409..6c2aa89 100644 --- a/CoroutineClient.php +++ b/CoroutineClient.php @@ -47,20 +47,19 @@ class CoroutineClient extends ClientAbstracts /** - * @param $path + * @param string $path * @return $this */ - public function withCAInfo($path): static + public function withCAInfo(string $path): static { return $this; } /** - * @param $url + * @param string $url * @param array|string $data - * @throws */ - private function coroutine($url, array|string $data = []): void + private function coroutine(string $url, array|string $data = []): void { try { $this->generate_client($this->getHost(), $this->isSSL()); @@ -78,12 +77,11 @@ class CoroutineClient extends ClientAbstracts /** - * @param $path - * @param $data + * @param string $path + * @param array|string $data * @return void - * @throws */ - private function execute($path, $data): void + private function execute(string $path, array|string $data): void { $this->client->execute($this->setParams($path, $data)); if (in_array($this->client->getStatusCode(), [502, 404])) { @@ -97,12 +95,11 @@ class CoroutineClient extends ClientAbstracts /** - * @param $path - * @param $data + * @param string $path + * @param array|string $data * @return void - * @throws */ - private function retry($path, $data): void + private function retry(string $path, array|string $data): void { if (($this->num += 1) <= $this->retryNum) { sleep($this->retryTimeout); @@ -115,10 +112,10 @@ class CoroutineClient extends ClientAbstracts } /** - * @param $host - * @param $isHttps + * @param string $host + * @param bool $isHttps */ - private function generate_client($host, $isHttps): void + private function generate_client(string $host, bool $isHttps): void { if ($isHttps || $this->isSSL()) { $this->client = new SwowClient($host, 443, true); @@ -135,11 +132,11 @@ class CoroutineClient extends ClientAbstracts /** - * @param $path - * @param $data + * @param string $path + * @param mixed $data * @return string */ - private function setParams($path, $data): string + private function setParams(string $path, mixed $data): string { $content = $this->getData(); if (!empty($content)) { diff --git a/CurlClient.php b/CurlClient.php index df9dc60..f835f0b 100644 --- a/CurlClient.php +++ b/CurlClient.php @@ -4,9 +4,6 @@ declare(strict_types=1); namespace Kiri; -use Exception; - - /** * Class CurlClient * @package Http\Handler\Client @@ -14,13 +11,14 @@ use Exception; class CurlClient extends ClientAbstracts { + /** - * @param $method - * @param $path + * @param string $method + * @param string $path * @param array|string $params - * @throws + * @return void */ - public function request($method, $path, array|string $params = []): void + public function request(string $method, string $path, array|string $params = []): void { if (!str_starts_with($path, '/')) { $path = '/' . $path; @@ -36,12 +34,12 @@ class CurlClient extends ClientAbstracts /** - * @param $path - * @param $method + * @param string $path + * @param string $method * @param $params - * @throws + * @return void */ - private function getCurlHandler($path, $method, $params): void + private function getCurlHandler(string $path, string $method, $params): void { $host = $this->isSSL() ? 'https://' . $this->getHost() : 'http://' . $this->getHost(); if ($this->getPort() != 443 && $this->getPort() != 80) { @@ -87,12 +85,12 @@ class CurlClient extends ClientAbstracts /** - * @param $resource - * @param $path - * @param $method - * @throws + * @param mixed $resource + * @param string $path + * @param string $method + * @return void */ - private function do($resource, $path, $method): void + private function do(mixed $resource, string $path, string $method): void { curl_setopt($resource, CURLOPT_URL, $path); curl_setopt($resource, CURLOPT_TIMEOUT, $this->getTimeout()); // 超时设置 @@ -128,14 +126,17 @@ class CurlClient extends ClientAbstracts } + /** + * @var string + */ private string $caPath = ''; /** - * @param $path + * @param string $path * @return $this */ - public function withCAInfo($path): static + public function withCAInfo(string $path): static { $this->caPath = $path; return $this; @@ -184,11 +185,11 @@ class CurlClient extends ClientAbstracts /** - * @param $output + * @param string $output * @return void * @throws */ - private function explode($output): void + private function explode(string $output): void { [$header, $body] = explode("\r\n\r\n", $output, 2); if ($header == 'HTTP/1.1 100 Continue') { @@ -208,21 +209,6 @@ class CurlClient extends ClientAbstracts } } - /** - * @param $headers - * @return array - */ - private function headerFormat($headers): array - { - $_tmp = []; - foreach ($headers as $val) { - $trim = explode(': ', trim($val)); - - $_tmp[strtolower($trim[0])] = [$trim[1] ?? '']; - } - return $_tmp; - } - /** * @return array diff --git a/HttpParse.php b/HttpParse.php index 003516c..07aec47 100644 --- a/HttpParse.php +++ b/HttpParse.php @@ -40,11 +40,10 @@ class HttpParse } /** - * @param $data + * @param array|string $data * @return string - * @throws */ - public static function parse($data): string + public static function parse(array|string $data): string { $tmp = []; if (is_string($data)) { @@ -65,7 +64,7 @@ class HttpParse * @return string * @throws */ - private static function ifElse($t, $qt): string + private static function ifElse(string $t, mixed $qt): string { if (is_numeric($qt)) { return $t . '=' . $qt;