改名
This commit is contained in:
+354
-349
@@ -10,6 +10,7 @@ namespace HttpServer\Http;
|
||||
|
||||
use Exception;
|
||||
use HttpServer\Exception\RequestException;
|
||||
use Snowflake\Core\Help;
|
||||
use Snowflake\Snowflake;
|
||||
|
||||
/**
|
||||
@@ -19,386 +20,390 @@ use Snowflake\Snowflake;
|
||||
class HttpParams
|
||||
{
|
||||
|
||||
/** @var array */
|
||||
private $body = [];
|
||||
/** @var array */
|
||||
private $body = [];
|
||||
|
||||
/** @var array */
|
||||
private $gets = [];
|
||||
/** @var array */
|
||||
private $gets = [];
|
||||
|
||||
/** @var array */
|
||||
private $files = [];
|
||||
/** @var array */
|
||||
private $files = [];
|
||||
|
||||
/**
|
||||
* HttpParams constructor.
|
||||
* @param $body
|
||||
* @param $get
|
||||
* @param $files
|
||||
*/
|
||||
public function __construct($body, $get, $files)
|
||||
{
|
||||
$this->body = $body;
|
||||
$this->gets = $get ?? [];
|
||||
$this->files = $files ?? [];
|
||||
}
|
||||
/**
|
||||
* HttpParams constructor.
|
||||
* @param $body
|
||||
* @param $get
|
||||
* @param $files
|
||||
*/
|
||||
public function __construct($body, $get, $files)
|
||||
{
|
||||
$this->body = $body;
|
||||
$this->gets = $get ?? [];
|
||||
$this->files = $files ?? [];
|
||||
if (!is_array($this->body)) {
|
||||
$this->body = Help::toArray($this->body);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function offset()
|
||||
{
|
||||
return ($this->page() - 1) * $this->size();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $data
|
||||
* 批量添加数据
|
||||
*/
|
||||
public function setPosts($data)
|
||||
{
|
||||
if (!is_array($data)) {
|
||||
return;
|
||||
}
|
||||
foreach ($data as $key => $vla) {
|
||||
$this->body[$key] = $vla;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function offset()
|
||||
{
|
||||
return ($this->page() - 1) * $this->size();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param string $value
|
||||
*/
|
||||
public function addGetParam(string $key, string $value)
|
||||
{
|
||||
$this->gets[$key] = $value;
|
||||
}
|
||||
/**
|
||||
* @param array $data
|
||||
* 批量添加数据
|
||||
*/
|
||||
public function setPosts(array $data)
|
||||
{
|
||||
if (!is_array($data)) {
|
||||
return;
|
||||
}
|
||||
foreach ($data as $key => $vla) {
|
||||
$this->body[$key] = $vla;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
private function page()
|
||||
{
|
||||
return (int)$this->get('page', 1);
|
||||
}
|
||||
/**
|
||||
* @param string $key
|
||||
* @param string $value
|
||||
*/
|
||||
public function addGetParam(string $key, string $value)
|
||||
{
|
||||
$this->gets[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function size()
|
||||
{
|
||||
return (int)$this->get('size', 20);
|
||||
}
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
private function page()
|
||||
{
|
||||
return (int)$this->get('page', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function size()
|
||||
{
|
||||
return (int)$this->get('size', 20);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param $defaultValue
|
||||
* @param $call
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function get($name, $defaultValue = null, $call = null)
|
||||
{
|
||||
return $this->gets[$name] ?? $defaultValue;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param $defaultValue
|
||||
* @param $call
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function get($name, $defaultValue = null, $call = null)
|
||||
{
|
||||
return $this->gets[$name] ?? $defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $defaultValue
|
||||
* @param $call
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function post($name, $defaultValue = null, $call = null)
|
||||
{
|
||||
$data = $this->body[$name] ?? $defaultValue;
|
||||
if ($call !== null) {
|
||||
$data = call_user_func($call, $data);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $defaultValue
|
||||
* @param $call
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function post($name, $defaultValue = null, $call = null)
|
||||
{
|
||||
$data = $this->body[$name] ?? $defaultValue;
|
||||
if ($call !== null) {
|
||||
$data = call_user_func($call, $data);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @return false|string
|
||||
* @throws Exception
|
||||
*/
|
||||
public function json($name)
|
||||
{
|
||||
$data = $this->array($name);
|
||||
if (empty($data)) {
|
||||
return JSON::encode([]);
|
||||
} else if (!is_array($data)) {
|
||||
return JSON::encode([]);
|
||||
}
|
||||
return JSON::encode($data);
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @return false|string
|
||||
* @throws Exception
|
||||
*/
|
||||
public function json($name)
|
||||
{
|
||||
$data = $this->array($name);
|
||||
if (empty($data)) {
|
||||
return JSON::encode([]);
|
||||
} else if (!is_array($data)) {
|
||||
return JSON::encode([]);
|
||||
}
|
||||
return JSON::encode($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function gets()
|
||||
{
|
||||
return $this->gets;
|
||||
}
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function gets()
|
||||
{
|
||||
return $this->gets;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function params()
|
||||
{
|
||||
return array_merge($this->body ?? [], $this->files ?? []);
|
||||
}
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function params()
|
||||
{
|
||||
return array_merge($this->body ?? [], $this->files ?? []);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function load()
|
||||
{
|
||||
return array_merge($this->files, $this->body, $this->gets);
|
||||
}
|
||||
/**
|
||||
* @return array
|
||||
*/
|
||||
public function load()
|
||||
{
|
||||
return array_merge($this->files, $this->body, $this->gets);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param array $defaultValue
|
||||
* @return array|mixed
|
||||
*/
|
||||
public function array($name, $defaultValue = [])
|
||||
{
|
||||
return $this->body[$name] ?? $defaultValue;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param array $defaultValue
|
||||
* @return array|mixed
|
||||
*/
|
||||
public function array($name, $defaultValue = [])
|
||||
{
|
||||
return $this->body[$name] ?? $defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @return mixed|File|null
|
||||
* @throws Exception
|
||||
*/
|
||||
public function file($name)
|
||||
{
|
||||
if (!isset($this->files[$name])) {
|
||||
return null;
|
||||
}
|
||||
$param = $this->files[$name];
|
||||
$param['class'] = File::class;
|
||||
return Snowflake::createObject($param);
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @return mixed|File|null
|
||||
* @throws Exception
|
||||
*/
|
||||
public function file($name)
|
||||
{
|
||||
if (!isset($this->files[$name])) {
|
||||
return null;
|
||||
}
|
||||
$param = $this->files[$name];
|
||||
$param['class'] = File::class;
|
||||
return Snowflake::createObject($param);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
private function required($name, $isNeed = false)
|
||||
{
|
||||
$int = $this->body[$name] ?? NULL;
|
||||
if (is_null($int) && $isNeed === true) {
|
||||
throw new RequestException("You need to add request parameter $name");
|
||||
}
|
||||
return $int;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
private function required($name, $isNeed = false)
|
||||
{
|
||||
$int = $this->body[$name] ?? NULL;
|
||||
if (is_null($int) && $isNeed === true) {
|
||||
throw new RequestException("You need to add request parameter $name");
|
||||
}
|
||||
return $int;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param null $min
|
||||
* @param null $max
|
||||
* @return int
|
||||
* @throws Exception
|
||||
*/
|
||||
public function int($name, $isNeed = FALSE, $min = NULL, $max = NULL)
|
||||
{
|
||||
$int = $this->required($name, $isNeed);
|
||||
if ($int === null) return null;
|
||||
if (is_array($min)) {
|
||||
list($min, $max) = $min;
|
||||
}
|
||||
if (is_null($int)) {
|
||||
$length = 0;
|
||||
} else {
|
||||
$length = strlen(floatval($int));
|
||||
}
|
||||
if (!is_numeric($int) || intval($int) != $int) {
|
||||
throw new RequestException("The request parameter $name must integer.");
|
||||
}
|
||||
$this->between($length, $min, $max);
|
||||
return (int)$int;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param null $min
|
||||
* @param null $max
|
||||
* @return int
|
||||
* @throws Exception
|
||||
*/
|
||||
public function int($name, $isNeed = FALSE, $min = NULL, $max = NULL)
|
||||
{
|
||||
$int = $this->required($name, $isNeed);
|
||||
if ($int === null) return null;
|
||||
if (is_array($min)) {
|
||||
list($min, $max) = $min;
|
||||
}
|
||||
if (is_null($int)) {
|
||||
$length = 0;
|
||||
} else {
|
||||
$length = strlen(floatval($int));
|
||||
}
|
||||
if (!is_numeric($int) || intval($int) != $int) {
|
||||
throw new RequestException("The request parameter $name must integer.");
|
||||
}
|
||||
$this->between($length, $min, $max);
|
||||
return (int)$int;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param int $round
|
||||
* @return float
|
||||
* @throws Exception
|
||||
*/
|
||||
public function float($name, $isNeed = FALSE, $round = 0)
|
||||
{
|
||||
$int = $this->required($name, $isNeed);
|
||||
if ($int === null) {
|
||||
return null;
|
||||
}
|
||||
if ($round > 0) {
|
||||
return round(floatval($int), $round);
|
||||
} else {
|
||||
return floatval($int);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param int $round
|
||||
* @return float
|
||||
* @throws Exception
|
||||
*/
|
||||
public function float($name, $isNeed = FALSE, $round = 0)
|
||||
{
|
||||
$int = $this->required($name, $isNeed);
|
||||
if ($int === null) {
|
||||
return null;
|
||||
}
|
||||
if ($round > 0) {
|
||||
return round(floatval($int), $round);
|
||||
} else {
|
||||
return floatval($int);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param null $length
|
||||
*
|
||||
* @return string
|
||||
* @throws
|
||||
*/
|
||||
public function string($name, $isNeed = FALSE, $length = NULL)
|
||||
{
|
||||
$string = $this->required($name, $isNeed);
|
||||
if ($string === null || $length === null) {
|
||||
return $string;
|
||||
}
|
||||
if (!is_string($string)) {
|
||||
$string = json_encode($string, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
$_length = strlen($string);
|
||||
if (is_array($length)) {
|
||||
if (count($length) < 2) {
|
||||
array_unshift($length, 0);
|
||||
}
|
||||
$this->between($_length, ...$length);
|
||||
} else if (is_numeric($length) && $_length != $length) {
|
||||
throw new RequestException("The length of the string must be $length characters");
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
* @param null $length
|
||||
*
|
||||
* @return string
|
||||
* @throws
|
||||
*/
|
||||
public function string($name, $isNeed = FALSE, $length = NULL)
|
||||
{
|
||||
$string = $this->required($name, $isNeed);
|
||||
if ($string === null || $length === null) {
|
||||
return $string;
|
||||
}
|
||||
if (!is_string($string)) {
|
||||
$string = json_encode($string, JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
$_length = strlen($string);
|
||||
if (is_array($length)) {
|
||||
if (count($length) < 2) {
|
||||
array_unshift($length, 0);
|
||||
}
|
||||
$this->between($_length, ...$length);
|
||||
} else if (is_numeric($length) && $_length != $length) {
|
||||
throw new RequestException("The length of the string must be $length characters");
|
||||
}
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $_length
|
||||
* @param $min
|
||||
* @param $max
|
||||
* @throws RequestException
|
||||
*/
|
||||
private function between($_length, $min, $max)
|
||||
{
|
||||
if ($min !== NULL && $_length < $min) {
|
||||
throw new RequestException("The minimum value cannot be lower than $min");
|
||||
}
|
||||
if ($max !== NULL && $_length > $max) {
|
||||
throw new RequestException("Maximum cannot exceed $max, has length " . $_length);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @param $_length
|
||||
* @param $min
|
||||
* @param $max
|
||||
* @throws RequestException
|
||||
*/
|
||||
private function between($_length, $min, $max)
|
||||
{
|
||||
if ($min !== NULL && $_length < $min) {
|
||||
throw new RequestException("The minimum value cannot be lower than $min");
|
||||
}
|
||||
if ($max !== NULL && $_length > $max) {
|
||||
throw new RequestException("Maximum cannot exceed $max, has length " . $_length);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
*
|
||||
* @return string
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function email($name, $isNeed = FALSE)
|
||||
{
|
||||
$email = $this->required($name, $isNeed);
|
||||
if ($email === null) {
|
||||
return null;
|
||||
}
|
||||
if (!preg_match('/^\w+([.-_]\w+)+@\w+(\.\w+)+$/', $email)) {
|
||||
throw new RequestException("Request parameter $name is in the wrong format", 4001);
|
||||
}
|
||||
return $email;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
*
|
||||
* @return string
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function email($name, $isNeed = FALSE)
|
||||
{
|
||||
$email = $this->required($name, $isNeed);
|
||||
if ($email === null) {
|
||||
return null;
|
||||
}
|
||||
if (!preg_match('/^\w+([.-_]\w+)+@\w+(\.\w+)+$/', $email)) {
|
||||
throw new RequestException("Request parameter $name is in the wrong format", 4001);
|
||||
}
|
||||
return $email;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
*
|
||||
* @return string
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function bool($name, $isNeed = FALSE)
|
||||
{
|
||||
$email = $this->required($name, $isNeed);
|
||||
if ($email === null) {
|
||||
return false;
|
||||
}
|
||||
return (bool)$email;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param bool $isNeed
|
||||
*
|
||||
* @return string
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function bool($name, $isNeed = FALSE)
|
||||
{
|
||||
$email = $this->required($name, $isNeed);
|
||||
if ($email === null) {
|
||||
return false;
|
||||
}
|
||||
return (bool)$email;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function timestamp($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value === null) {
|
||||
return $default;
|
||||
}
|
||||
if (!is_numeric($value)) {
|
||||
throw new RequestException('The request param :attribute not is a timestamp value');
|
||||
}
|
||||
if (strlen((string)$value) != 10) {
|
||||
throw new RequestException('The request param :attribute not is a timestamp value');
|
||||
}
|
||||
if (!date('YmdHis', $value)) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function timestamp($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value === null) {
|
||||
return $default;
|
||||
}
|
||||
if (!is_numeric($value)) {
|
||||
throw new RequestException('The request param :attribute not is a timestamp value');
|
||||
}
|
||||
if (strlen((string)$value) != 10) {
|
||||
throw new RequestException('The request param :attribute not is a timestamp value');
|
||||
}
|
||||
if (!date('YmdHis', $value)) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function datetime($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value === null) {
|
||||
return $default;
|
||||
}
|
||||
$match = '/^\d{4}.*?([1-12]).*([1-31]).*?[0-23].*?[0-59].*?[0-59].*?$/';
|
||||
$match = preg_match($match, $value, $result);
|
||||
if (!$match || $result[0] != $value) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
*
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function datetime($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value === null) {
|
||||
return $default;
|
||||
}
|
||||
$match = '/^\d{4}.*?([1-12]).*([1-31]).*?[0-23].*?[0-59].*?[0-59].*?$/';
|
||||
$match = preg_match($match, $value, $result);
|
||||
if (!$match || $result[0] != $value) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function ip($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value == NULL) {
|
||||
return $default;
|
||||
}
|
||||
$match = preg_match('/^\d{1,3}(\.\d{1,3}){3}$/', $value, $result);
|
||||
if (!$match || $result[0] != $value) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
/**
|
||||
* @param $name
|
||||
* @param null $default
|
||||
* @return mixed|null
|
||||
* @throws RequestException
|
||||
*/
|
||||
public function ip($name, $default = NULL)
|
||||
{
|
||||
$value = $this->required($name, false);
|
||||
if ($value == NULL) {
|
||||
return $default;
|
||||
}
|
||||
$match = preg_match('/^\d{1,3}(\.\d{1,3}){3}$/', $value, $result);
|
||||
if (!$match || $result[0] != $value) {
|
||||
throw new RequestException('The request param :attribute format error', 4001);
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
$load = $this->load();
|
||||
/**
|
||||
* @param $name
|
||||
* @return mixed|null
|
||||
*/
|
||||
public function __get($name)
|
||||
{
|
||||
$load = $this->load();
|
||||
|
||||
return $load[$name] ?? null;
|
||||
}
|
||||
return $load[$name] ?? null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -424,7 +424,7 @@ class Request extends Application
|
||||
$sRequest->startTime = microtime(true);
|
||||
$sRequest->uri = $request->server['request_uri'] ?? $request->header['request_uri'];
|
||||
|
||||
$sRequest->params = Snowflake::createObject(HttpParams::class,[Help::toArray($request->rawContent()), $request->get, $request->files]);
|
||||
$sRequest->params = new HttpParams($request->rawContent(), $request->get, $request->files);
|
||||
if (!empty($request->post)) {
|
||||
$sRequest->params->setPosts($request->post ?? []);
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ class Connection extends Pool
|
||||
*/
|
||||
public function inTransaction($cds)
|
||||
{
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($cds, true);
|
||||
$coroutineName = $this->name($cds, true);
|
||||
if (!Context::hasContext('begin_' . $coroutineName)) {
|
||||
return false;
|
||||
}
|
||||
@@ -117,7 +117,7 @@ class Connection extends Pool
|
||||
*/
|
||||
public function beginTransaction($coroutineName)
|
||||
{
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($coroutineName, true);
|
||||
$coroutineName = $this->name($coroutineName, true);
|
||||
if (!Context::hasContext('begin_' . $coroutineName)) {
|
||||
Context::setContext('begin_' . $coroutineName, 0);
|
||||
}
|
||||
@@ -136,7 +136,7 @@ class Connection extends Pool
|
||||
*/
|
||||
public function commit($coroutineName)
|
||||
{
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($coroutineName, true);
|
||||
$coroutineName = $this->name($coroutineName, true);
|
||||
if (!Context::hasContext('begin_' . $coroutineName)) {
|
||||
return;
|
||||
}
|
||||
@@ -170,7 +170,7 @@ class Connection extends Pool
|
||||
*/
|
||||
public function rollback($coroutineName)
|
||||
{
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($coroutineName, true);
|
||||
$coroutineName = $this->name($coroutineName, true);
|
||||
if (!Context::hasContext('begin_' . $coroutineName)) {
|
||||
return;
|
||||
}
|
||||
@@ -200,7 +200,7 @@ class Connection extends Pool
|
||||
if ($this->creates === 0) {
|
||||
$this->creates = Timer::tick(10000, [$this, 'Heartbeat_detection']);
|
||||
}
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($config['cds'], $isMaster);
|
||||
$coroutineName = $this->name($config['cds'], $isMaster);
|
||||
if (!isset($this->hasCreate[$coroutineName])) {
|
||||
$this->hasCreate[$coroutineName] = 0;
|
||||
}
|
||||
@@ -210,9 +210,9 @@ class Connection extends Pool
|
||||
if ($this->size($coroutineName) < 1 && $this->hasCreate[$coroutineName] < $this->max) {
|
||||
return $this->saveClient($coroutineName, $this->nowClient($coroutineName, $config));
|
||||
}
|
||||
[$timeout, $connection] = $client = $this->get($coroutineName);
|
||||
if ($connection instanceof PDO) {
|
||||
return $this->saveClient($coroutineName, $connection);
|
||||
$connections = $client = $this->get($coroutineName);
|
||||
if ($connections[1] instanceof PDO) {
|
||||
return $this->saveClient($coroutineName, $connections[1]);
|
||||
}
|
||||
return $this->saveClient($coroutineName, $this->nowClient($coroutineName, $config));
|
||||
}
|
||||
@@ -252,7 +252,7 @@ class Connection extends Pool
|
||||
*/
|
||||
public function release($coroutineName, $isMaster)
|
||||
{
|
||||
[$coroutineId, $coroutineName] = $this->getIndex($coroutineName, $isMaster);
|
||||
$coroutineName = $this->name($coroutineName, $isMaster);
|
||||
if (!$this->hasClient($coroutineName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
+6
-16
@@ -36,7 +36,7 @@ class Redis extends Pool
|
||||
public function getConnection(array $config, $isMaster = false)
|
||||
{
|
||||
$name = $config['host'] . ':' . $config['prefix'] . ':' . $config['databases'];
|
||||
[$coroutineId, $coroutineName] = $this->getIndex('redis:' . $name, $isMaster);
|
||||
$coroutineName = $this->name('redis:' . $name, $isMaster);
|
||||
if (Context::hasContext($coroutineName)) {
|
||||
return Context::getContext($coroutineName);
|
||||
} else if (!$this->hasItem($coroutineName)) {
|
||||
@@ -59,11 +59,11 @@ class Redis extends Pool
|
||||
$this->success('create redis client -> ' . $config['host'] . ':' . $this->size($coroutineName));
|
||||
return $this->saveClient($coroutineName, $this->createConnect($config));
|
||||
}
|
||||
[$time, $client] = $this->get($coroutineName);
|
||||
if ($client === null) {
|
||||
$clients = $this->get($coroutineName);
|
||||
if ($clients[1] === null) {
|
||||
return $this->getByChannel($coroutineName, $config);
|
||||
}
|
||||
return $this->saveClient($coroutineName, $client);
|
||||
return $this->saveClient($coroutineName, $clients[1]);
|
||||
}
|
||||
|
||||
|
||||
@@ -109,7 +109,7 @@ class Redis extends Pool
|
||||
public function release(array $config, $isMaster = false)
|
||||
{
|
||||
$name = $config['host'] . ':' . $config['prefix'] . ':' . $config['databases'];
|
||||
[$coroutineId, $coroutineName] = $this->getIndex('redis:' . $name, $isMaster);
|
||||
$coroutineName = $this->name('redis:' . $name, $isMaster);
|
||||
if (!Context::hasContext($coroutineName)) {
|
||||
return;
|
||||
}
|
||||
@@ -127,7 +127,7 @@ class Redis extends Pool
|
||||
public function destroy(array $config, $isMaster = false)
|
||||
{
|
||||
$name = $config['host'] . ':' . $config['prefix'] . ':' . $config['databases'];
|
||||
[$coroutineId, $coroutineName] = $this->getIndex('redis:' . $name, $isMaster);
|
||||
$coroutineName = $this->name('redis:' . $name, $isMaster);
|
||||
if (!Context::hasContext($coroutineName)) {
|
||||
return;
|
||||
}
|
||||
@@ -177,15 +177,5 @@ class Redis extends Pool
|
||||
// TODO: Implement desc() method.
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
* @param false $isMaster
|
||||
* @return array
|
||||
*/
|
||||
private function getIndex($name, $isMaster = false)
|
||||
{
|
||||
return [Coroutine::getCid(), $this->name($name, $isMaster)];
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user