This commit is contained in:
2021-02-22 17:44:24 +08:00
parent 3b09b9a308
commit 2d1f83cf09
34 changed files with 732 additions and 222 deletions
+6 -5
View File
@@ -151,11 +151,12 @@ class Connection extends Pool
}
/**
* @param array $config
* @return mixed
*/
public function createClient(string $name, array $config): mixed
/**
* @param string $name
* @param array $config
* @return PDO
*/
public function createClient(string $name, array $config): PDO
{
$this->printClients($config['cds'], $name, true);
// TODO: Implement createClient() method.
+58
View File
@@ -0,0 +1,58 @@
<?php
namespace Snowflake\Pool;
use Exception;
use ReflectionException;
use Snowflake\Exception\NotFindClassException;
use Snowflake\Snowflake;
/**
* Class ObjectPool
* @package Snowflake\Pool
*/
class ObjectPool extends \Snowflake\Abstracts\Pool
{
/**
* @param array $config
* @param bool $isMaster
* @return mixed
* @throws Exception
*/
public function getConnection(array $config, bool $isMaster): mixed
{
return $this->get($config[0], $config);
}
/**
* @param string $name
* @param array $config
* @return mixed
* @throws ReflectionException
* @throws NotFindClassException
*/
public function createClient(string $name, array $config): mixed
{
// TODO: Implement createClient() method.
return Snowflake::createObject(array_shift($config));
}
/**
* @param string $name
* @param $object
*/
public function release(string $name, mixed $object)
{
if (method_exists($object, 'clean')) {
$object->clean();
}
$this->push($name, $object);
}
}
+5 -6
View File
@@ -5,7 +5,6 @@ declare(strict_types=1);
namespace Snowflake\Pool;
use Snowflake\Exception\ComponentException;
use Snowflake\Snowflake;
@@ -38,9 +37,9 @@ class Pool extends \Snowflake\Abstracts\Pool
}
public function createClient(string $name, array $config): mixed
{
// TODO: Implement createClient() method.
return null;
}
public function createClient(string $name, array $config): mixed
{
// TODO: Implement createClient() method.
return null;
}
}
+7 -6
View File
@@ -49,12 +49,13 @@ class Redis extends Pool
}
/**
* @param array $config
* @return SRedis
* @throws RedisConnectException
*/
public function createClient(string $name, array $config): mixed
/**
* @param string $name
* @param array $config
* @return SRedis
* @throws RedisConnectException
*/
public function createClient(string $name, array $config): SRedis
{
$this->printClients($config['host'], $name, true);
$redis = new SRedis();