Default Changelist
This commit is contained in:
+4
-5
@@ -12,7 +12,6 @@ class Container
|
|||||||
/** @var Container */
|
/** @var Container */
|
||||||
private static $_instance;
|
private static $_instance;
|
||||||
|
|
||||||
/** @var \common\Config */
|
|
||||||
private $config;
|
private $config;
|
||||||
|
|
||||||
private $container = [];
|
private $container = [];
|
||||||
@@ -38,8 +37,8 @@ class Container
|
|||||||
|
|
||||||
if (static::$_instance->exists($class)) {
|
if (static::$_instance->exists($class)) {
|
||||||
$newInstance = static::$_instance->get($class);
|
$newInstance = static::$_instance->get($class);
|
||||||
if (method_exists($newInstance, 'initConfig')) {
|
if (method_exists($newInstance, 'setConfig')) {
|
||||||
$newInstance->initConfig($config);
|
$newInstance->setConfig($config);
|
||||||
}
|
}
|
||||||
return $newInstance;
|
return $newInstance;
|
||||||
} else {
|
} else {
|
||||||
@@ -71,8 +70,8 @@ class Container
|
|||||||
throw new Exception('Class Con\'t instance.');
|
throw new Exception('Class Con\'t instance.');
|
||||||
}
|
}
|
||||||
$newInstance = $newInstance->newInstance();
|
$newInstance = $newInstance->newInstance();
|
||||||
if (method_exists($newInstance, 'initConfig')) {
|
if (method_exists($newInstance, 'setConfig')) {
|
||||||
$newInstance->initConfig($this->config);
|
$newInstance->setConfig($this->config);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->container[$class] = $newInstance;
|
$this->container[$class] = $newInstance;
|
||||||
|
|||||||
@@ -18,8 +18,6 @@ abstract class Multiprogramming implements Progaram
|
|||||||
|
|
||||||
protected static ?Multiprogramming $instance = null;
|
protected static ?Multiprogramming $instance = null;
|
||||||
|
|
||||||
protected ?HttpClient $request = null;
|
|
||||||
|
|
||||||
protected int $errorCode = 0;
|
protected int $errorCode = 0;
|
||||||
protected string $errorMsg = '';
|
protected string $errorMsg = '';
|
||||||
|
|
||||||
|
|||||||
+151
-112
@@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
namespace wchat\common;
|
namespace wchat\common;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
use JetBrains\PhpStorm\ArrayShape;
|
use JetBrains\PhpStorm\ArrayShape;
|
||||||
|
use Kiri\Client;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Result
|
* Class Result
|
||||||
@@ -17,126 +19,163 @@ use JetBrains\PhpStorm\ArrayShape;
|
|||||||
class Result
|
class Result
|
||||||
{
|
{
|
||||||
|
|
||||||
private ?int $startTime;
|
private ?int $startTime;
|
||||||
private ?int $requestTime;
|
private ?int $requestTime;
|
||||||
private ?int $runTime;
|
private ?int $runTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $code
|
* @param int $code
|
||||||
* @param string $message
|
* @param string $message
|
||||||
* @param int $count
|
* @param int $count
|
||||||
* @param mixed $data
|
* @param mixed $data
|
||||||
* @param array $header
|
* @param array $header
|
||||||
*/
|
*/
|
||||||
public function __construct(public int $code, public string $message = '', public int $count = 0, public mixed $data = [], public array $header = [],)
|
public function __construct(public int $code, public string $message = '', public int $count = 0, public mixed $data = [], public array $header = [],)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $name
|
* @param string $data
|
||||||
* @return mixed
|
* @return static
|
||||||
*/
|
*/
|
||||||
public function __get($name)
|
public static function wxInit(string $data): static
|
||||||
{
|
{
|
||||||
return $this->$name;
|
$json = json_decode($data, true);
|
||||||
}
|
if (isset($json['errcode']) && $json['errcode'] != 0) {
|
||||||
|
return new Result(code: $json['errcode'], message: $json['errmsg']);
|
||||||
|
} else {
|
||||||
|
return new Result(code: 0, data: $json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $name
|
* @param Client $client
|
||||||
* @param $value
|
* @return static
|
||||||
* @return $this
|
*/
|
||||||
*/
|
public static function init(Client $client): static
|
||||||
public function __set($name, $value)
|
{
|
||||||
{
|
if (!in_array($client->getStatusCode(), [101, 200, 201])) {
|
||||||
$this->$name = $value;
|
return new Result(code: 505, message: 'network error.');
|
||||||
|
}
|
||||||
return $this;
|
$body = json_decode($client->getBody(), true);
|
||||||
}
|
if (isset($body['errcode']) && $body['errcode'] != 0) {
|
||||||
|
return new Result(code: $body['errcode'], message: $body['errmsg']);
|
||||||
/**
|
} else {
|
||||||
* @return array
|
return new Result(code: 0, data: $body);
|
||||||
*/
|
}
|
||||||
#[ArrayShape(['startTime' => "int|null", 'requestTime' => "int|null", 'runTime' => "int|null"])]
|
}
|
||||||
public function getTime(): array
|
|
||||||
{
|
|
||||||
return [
|
|
||||||
'startTime' => $this->startTime,
|
|
||||||
'requestTime' => $this->requestTime,
|
|
||||||
'runTime' => $this->runTime,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $key
|
|
||||||
* @param $data
|
|
||||||
* @return $this
|
|
||||||
* @throws \Exception
|
|
||||||
*/
|
|
||||||
public function setAttr($key, $data): static
|
|
||||||
{
|
|
||||||
if (!property_exists($this, $key)) {
|
|
||||||
throw new \Exception('未查找到相应对象属性');
|
|
||||||
}
|
|
||||||
$this->$key = $data;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public function isResultsOK(): bool
|
|
||||||
{
|
|
||||||
if (!is_numeric($this->code)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return $this->code == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param $name
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function getData(string $name = ''): mixed
|
public function __get($name)
|
||||||
{
|
{
|
||||||
if (!$this->isResultsOK()) {
|
return $this->$name;
|
||||||
return $this->data;
|
}
|
||||||
}
|
|
||||||
if (!empty($name) && isset($this->data[$name])) {
|
|
||||||
return $this->data[$name];
|
|
||||||
}
|
|
||||||
return $this->data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $key
|
|
||||||
* @param $data
|
|
||||||
* @return $this
|
|
||||||
*/
|
|
||||||
public function append($key, $data): static
|
|
||||||
{
|
|
||||||
if (!is_array($this->data)) {
|
|
||||||
$this->data = ['origin' => $this->data];
|
|
||||||
}
|
|
||||||
$this->data[$key] = $data;
|
|
||||||
return $this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @param $name
|
||||||
*/
|
* @param $value
|
||||||
public function getMessage(): string
|
* @return $this
|
||||||
{
|
*/
|
||||||
return $this->message;
|
public function __set($name, $value)
|
||||||
}
|
{
|
||||||
|
$this->$name = $value;
|
||||||
|
|
||||||
/**
|
return $this;
|
||||||
* @return int
|
}
|
||||||
*/
|
|
||||||
public function getCode(): int
|
/**
|
||||||
{
|
* @return array
|
||||||
return $this->code;
|
*/
|
||||||
}
|
#[ArrayShape(['startTime' => "int|null", 'requestTime' => "int|null", 'runTime' => "int|null"])]
|
||||||
|
public function getTime(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'startTime' => $this->startTime,
|
||||||
|
'requestTime' => $this->requestTime,
|
||||||
|
'runTime' => $this->runTime,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $key
|
||||||
|
* @param $data
|
||||||
|
* @return $this
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function setAttr($key, $data): static
|
||||||
|
{
|
||||||
|
if (!property_exists($this, $key)) {
|
||||||
|
throw new Exception('未查找到相应对象属性');
|
||||||
|
}
|
||||||
|
$this->$key = $data;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
public function isResultsOK(): bool
|
||||||
|
{
|
||||||
|
if (!is_numeric($this->code)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return $this->code == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $name
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function getData(string $name = ''): mixed
|
||||||
|
{
|
||||||
|
if (!$this->isResultsOK()) {
|
||||||
|
return $this->data;
|
||||||
|
}
|
||||||
|
if (!is_array($this->data)) {
|
||||||
|
return $this->data;
|
||||||
|
}
|
||||||
|
if ($name != '') {
|
||||||
|
return $this->data[$name] ?? null;
|
||||||
|
} else {
|
||||||
|
return $this->data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $key
|
||||||
|
* @param $data
|
||||||
|
* @return $this
|
||||||
|
*/
|
||||||
|
public function append($key, $data): static
|
||||||
|
{
|
||||||
|
if (!is_array($this->data)) {
|
||||||
|
$this->data = ['origin' => $this->data];
|
||||||
|
}
|
||||||
|
$this->data[$key] = $data;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMessage(): string
|
||||||
|
{
|
||||||
|
return $this->message;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getCode(): int
|
||||||
|
{
|
||||||
|
return $this->code;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-11
@@ -9,8 +9,6 @@
|
|||||||
namespace wchat\qq;
|
namespace wchat\qq;
|
||||||
|
|
||||||
use Kiri\Client;
|
use Kiri\Client;
|
||||||
use wchat\common\Decode;
|
|
||||||
use wchat\common\HttpClient;
|
|
||||||
use wchat\common\Result;
|
use wchat\common\Result;
|
||||||
|
|
||||||
class Account extends SmallProgram
|
class Account extends SmallProgram
|
||||||
@@ -32,15 +30,7 @@ class Account extends SmallProgram
|
|||||||
$client->get('sns/jscode2session', $param);
|
$client->get('sns/jscode2session', $param);
|
||||||
$client->close();
|
$client->close();
|
||||||
|
|
||||||
if (!in_array($client->getStatusCode(), [101, 200, 201])) {
|
return Result::init($client);
|
||||||
return new Result(code: 505, message: 'network error.');
|
|
||||||
}
|
|
||||||
$body = json_decode($client->getBody(), true);
|
|
||||||
if (isset($body['errcode']) && $body['errcode'] != 0) {
|
|
||||||
return new Result(code: $body['errcode'], message: $body['errmsg']);
|
|
||||||
} else {
|
|
||||||
return new Result(code: 0, data: $body);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,20 +3,22 @@
|
|||||||
namespace wchat\wx;
|
namespace wchat\wx;
|
||||||
|
|
||||||
use Kiri\Di\Container;
|
use Kiri\Di\Container;
|
||||||
|
use ReflectionException;
|
||||||
use wchat\common\Config;
|
use wchat\common\Config;
|
||||||
|
|
||||||
class QqFactory
|
class QqFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $class
|
* @param $class
|
||||||
* @param Config $config
|
* @param Config $config
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
* @throws ReflectionException
|
||||||
|
*/
|
||||||
public static function get($class, Config $config): mixed
|
public static function get($class, Config $config): mixed
|
||||||
{
|
{
|
||||||
$container = Container::getInstance();
|
$container = Container::instance();
|
||||||
$object = $container->get($class);
|
$object = $container->get($class);
|
||||||
$object->setConfig($config);
|
$object->setConfig($config);
|
||||||
return $object;
|
return $object;
|
||||||
|
|||||||
+14
-12
@@ -3,24 +3,26 @@
|
|||||||
namespace wchat\wx;
|
namespace wchat\wx;
|
||||||
|
|
||||||
use Kiri\Di\Container;
|
use Kiri\Di\Container;
|
||||||
|
use ReflectionException;
|
||||||
use wchat\common\Config;
|
use wchat\common\Config;
|
||||||
|
|
||||||
class WxFactory
|
class WxFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $class
|
* @param $class
|
||||||
* @param Config $config
|
* @param Config $config
|
||||||
* @return mixed
|
* @return object|null
|
||||||
*/
|
* @throws ReflectionException
|
||||||
public static function get($class, Config $config)
|
*/
|
||||||
{
|
public static function get($class, Config $config): ?object
|
||||||
$container = Container::getInstance();
|
{
|
||||||
$object = $container->get($class);
|
$container = Container::instance();
|
||||||
$object->setConfig($config);
|
$object = $container->get($class);
|
||||||
return $object;
|
$object->setConfig($config);
|
||||||
}
|
return $object;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user