easyswoole数据库连接池_Easyswoole ORM连接池实现(方法二)

该种方法在Easyswoole中实现 Mysqli 连接池的另外一种形式。 封装度更高,使用更简单。

实际开发中推荐使用该种方法 使用orm连接池 ,使用过模型操作mysql 更便捷

1.安装

安装orm组件

composer require easyswoole/orm --ignore-platform-reqs

# 该组件已包含了 easyswoole/pool 组件

配置连接参数 并注册到 easyswoole服务注册中心

1. 在 easyswoole中配置文件中 /dev.php | produce.php 中 追加mysql 链接参数配置

/**

* mysql连接池 配置

*/

'mysql' => [

"name"=>"default",

'host' => '192.168.2.87',

'port' => 3306,

'user' => 'root', // 登陆用户名

'password' => '123456', //登录密码

'database' => 'test' , // 数据库名称

'timeout' => 45,

'charset' => 'utf8',

"strict_type"=>false, //

"fetch_mode"=>false, // 开启严格模式,返回的字段将自动转为数字类型

// 以下是连接池属性

"intervalCheckTime" => 5,// 定时器执行频率 用于定时执行连接池对象回收,创建操作

"maxIdleTime" => 5, // 连接池对象最大闲置时间(秒)

"minObjectNum" => 5, // 连接池最小连接数

"maxObjectNum" => 30, // 连接池最大连接数

"getObjectTimeout" => 8.0, //

"autoPing"=>8,// 间隔自动 ping的时间

],

2. 在 /EasySwooleEvent.php 中的 initialize() 方法中注册连接池

$mysqlConfig= \EasySwoole\EasySwoole\Config::getInstance()->getConf("mysql"); // 获取配置环境中的mysql配置

$config = \EasySwoole\ORM\Db\Config($mysqlConfig);

try {

$config->setIntervalCheckTime($mysqlConfig["intervalCheckTime"]);

$config->setGetObjectTimeout($mysqlConfig["getObjectTimeout"]);

$config->setMaxIdleTime($mysqlConfig["maxIdleTime"]);

$config->setMinObjectNum($mysqlConfig["minObjectNum"]);

$config->setMaxObjectNum($mysqlConfig["maxObjectNum"]);

$config->setAutoPing($mysqlConfig["autoPing"]);

// 重点... 注册 orm连接池管理器1

\EasySwoole\ORM\DbManager::getInstance()->addConnection(new Connection($config),$mysqlConfig["name"]);

// ... 可以注册多个数据库链接, 通过 orm 切换到不同的数据源。 addConnection 方法的第二个参数是字符串,用于表示数据源。 在后面的定义模型中根据 数据源名称 切换 模型不同的数据源

} catch (Throwable $e) {

$log = "系统启动时注入mysqli orm异常 Msg:{$e->getMessage()}";

// 记录系统启动异常 .....

}

完成上面的1,2步骤 在项目中创建模型, 就可以使用了。 详细使用文档,参考官网。

介绍 orm 切换不同的数据源执行sql

由于在项目中需要切换不同的数据源执行

方法1 [不推荐]:

该种方法非常繁琐

\App\Modedl\TestModel::create()->setExecClient(new \EasySwoole\ORM\Db\MysqliClient(new \EasySwoole\Mysqli\Config([

"host"=>"xxx",

//....

])))->where("查询条件")->all();

方法2[推荐]:

// 在模型文件中 \App\Modedl\TestModel.php 中 添加属性

protected $connectionName = 'read';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值