ConnectionPool
最后更新于:2022-04-02 07:07:37
## Mix\Database\Pool\ConnectionPool::class
通常频繁调用的数据库都会以连接池的方式获取连接,mix 的数据库连接池是基于一个独立的连接池库 [mix/pool](https://github.com/mix-php/pool) 开发的,其大概流程为:
- 通过依赖注入获取连接池实例(单例)
- 通过连接池获取连接
- 池内无可用连接时调用连接池的拨号器 dialer 创建新连接
## 组件
使用 [composer]([https://www.phpcomposer.com/](https://www.phpcomposer.com/)) 安装:
~~~
composer require mix/database
~~~
## 依赖注入配置
- [beans/database.php](https://github.com/mix-php/mix-skeleton/tree/v2.1/manifest/beans/database.php)
## 通过池获取连接
通过连接池获取连接:
```
/** @var \Mix\Database\Pool\ConnectionPool $dbPool */
$dbPool = context()->get('dbPool');
$db = $dbPool->getConnection();
// ...
$db->release(); // 不手动释放的连接不会归还连接池,会在析构时丢弃
```
';