From 814e73866ea54a04c79234c9289284d95c763faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mr=C2=B7x?= Date: Mon, 31 Aug 2020 13:58:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Database/Base/BaseActiveRecord.php | 2 +- Database/Connection.php | 41 ++----------------------- Database/DatabasesProviders.php | 46 ++++++++++++++++++++++++++++ system/Abstracts/BaseApplication.php | 4 +-- 4 files changed, 52 insertions(+), 41 deletions(-) create mode 100644 Database/DatabasesProviders.php diff --git a/Database/Base/BaseActiveRecord.php b/Database/Base/BaseActiveRecord.php index 55bf4488..14ae4b69 100644 --- a/Database/Base/BaseActiveRecord.php +++ b/Database/Base/BaseActiveRecord.php @@ -766,7 +766,7 @@ abstract class BaseActiveRecord extends Component implements IOrm, \ArrayAccess */ public static function setDatabaseConnect($bsName) { - return Snowflake::get()->db->instance($bsName); + return Snowflake::get()->db->get($bsName); } /** diff --git a/Database/Connection.php b/Database/Connection.php index dba6a5fe..81632917 100644 --- a/Database/Connection.php +++ b/Database/Connection.php @@ -40,18 +40,6 @@ class Connection extends Component public $maxNumber = 100; - /** - * @var array - * - * @example [ - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ] - */ - public $masterConfig = []; - /** * @var bool * enable database cache @@ -63,10 +51,9 @@ class Connection extends Component * @var array * * @example [ - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], - * ['cds' => 'mysql:dbname=dbname;host=127.0.0.1', 'username' => 'root', 'password' => 'root'], + * 'cds' => 'mysql:dbname=dbname;host=127.0.0.1', + * 'username' => 'root', + * 'password' => 'root' * ] */ public $slaveConfig = []; @@ -186,28 +173,6 @@ class Connection extends Component return $pool->getConnection($config, true); } - - /** - * @param $name - * @return Connection - * @throws ConfigException - */ - public function instance($name) - { - $config = Config::get('databases.' . $name, true); - - $this->cds = $config['cds']; - $this->username = $config['username']; - $this->password = $config['password']; - - $this->tablePrefix = $config['tablePrefix']; - - $this->slaveConfig = $config['slaveConfig']; - - return $this; - } - - /** * @return PDO * @throws Exception diff --git a/Database/DatabasesProviders.php b/Database/DatabasesProviders.php new file mode 100644 index 00000000..ede63e7e --- /dev/null +++ b/Database/DatabasesProviders.php @@ -0,0 +1,46 @@ +has($name)) { + return Snowflake::get()->get($name); + } + return Snowflake::get()->set($name, [ + 'class' => Connection::class, + 'id' => 'db', + 'cds' => $config['cds'], + 'username' => $config['username'], + 'password' => $config['password'], + 'tablePrefix' => $config['tablePrefix'], + 'maxNumber' => 100, + 'slaveConfig' => $config['slaveConfig'] + ]); + } + + +} diff --git a/system/Abstracts/BaseApplication.php b/system/Abstracts/BaseApplication.php index 844a73ec..b43dd9c4 100644 --- a/system/Abstracts/BaseApplication.php +++ b/system/Abstracts/BaseApplication.php @@ -27,8 +27,8 @@ use Snowflake\Pool\RedisClient; use Snowflake\Processes; use Snowflake\Snowflake; use Snowflake\Event; -use Database\Connection as DbConnection; use Snowflake\Pool\Pool as SPool; +use Database\DatabasesProviders; /** * Class BaseApplication @@ -40,7 +40,7 @@ use Snowflake\Pool\Pool as SPool; * @property Processes $processes * @property SPool $pool * @property Server $servers - * @property DbConnection $db + * @property DatabasesProviders $db * @property Connection $connections * @property Logger $logger */