美文网首页
Easyswoole ORM连接池实现(方法二)

Easyswoole ORM连接池实现(方法二)

作者: 骑蚂蚁上高速_jun | 来源:发表于2020-08-05 15:59 被阅读0次

该种方法在Easyswoole中实现 Mysqli 连接池的另外一种形式。 封装度更高,使用更简单。
实际开发中推荐使用该种方法 使用orm连接池 ,使用过模型操作mysql 更便捷

1.安装

安装orm组件
composer require easyswoole/orm --ignore-platform-reqs
# 该组件已包含了  easyswoole/pool 组件
  1. 配置连接参数 并注册到 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步骤 在项目中创建模型, 就可以使用了。 详细使用文档,参考官网。

  1. 介绍 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';

相关文章

网友评论

      本文标题:Easyswoole ORM连接池实现(方法二)

      本文链接:https://www.haomeiwen.com/subject/krcorktx.html