Easyswoole ORM連接池實(shí)現(xiàn)(方法二)

該種方法在Easyswoole中實(shí)現(xiàn) Mysqli 連接池的另外一種形式。 封裝度更高,使用更簡單。
實(shí)際開發(fā)中推薦使用該種方法 使用orm連接池 ,使用過模型操作mysql 更便捷

1.安裝

安裝orm組件
composer require easyswoole/orm --ignore-platform-reqs
# 該組件已包含了  easyswoole/pool 組件
  1. 配置連接參數(shù) 并注冊到 easyswoole服務(wù)注冊中心
1. 在 easyswoole中配置文件中 /dev.php | produce.php 中 追加mysql 鏈接參數(shù)配置
/**
     * mysql連接池 配置
     */
    'mysql' => [
        "name"=>"default",
        'host' => '192.168.2.87',
        'port' => 3306,
        'user' => 'root', // 登陸用戶名
        'password' => '123456', //登錄密碼
        'database' => 'test' , // 數(shù)據(jù)庫名稱
        'timeout' => 45,
        'charset' => 'utf8',
        "strict_type"=>false, //
        "fetch_mode"=>false, // 開啟嚴(yán)格模式,返回的字段將自動轉(zhuǎn)為數(shù)字類型
        // 以下是連接池屬性
        "intervalCheckTime" => 5,// 定時器執(zhí)行頻率      用于定時執(zhí)行連接池對象回收,創(chuàng)建操作
        "maxIdleTime" => 5, // 連接池對象最大閑置時間(秒)
        "minObjectNum" => 5, // 連接池最小連接數(shù)
        "maxObjectNum" => 30, // 連接池最大連接數(shù)
        "getObjectTimeout" => 8.0, //
        "autoPing"=>8,// 間隔自動 ping的時間
    ],

2. 在 /EasySwooleEvent.php 中的 initialize() 方法中注冊連接池 
$mysqlConfig= \EasySwoole\EasySwoole\Config::getInstance()->getConf("mysql"); // 獲取配置環(huán)境中的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"]);
    // 重點(diǎn)...   注冊 orm連接池管理器1
    \EasySwoole\ORM\DbManager::getInstance()->addConnection(new Connection($config),$mysqlConfig["name"]);
   // ... 可以注冊多個數(shù)據(jù)庫鏈接, 通過 orm 切換到不同的數(shù)據(jù)源。  addConnection 方法的第二個參數(shù)是字符串,用于表示數(shù)據(jù)源。 在后面的定義模型中根據(jù) 數(shù)據(jù)源名稱 切換 模型不同的數(shù)據(jù)源
} catch (Throwable $e) {
    $log = "系統(tǒng)啟動時注入mysqli orm異常 Msg:{$e->getMessage()}";
    // 記錄系統(tǒng)啟動異常 ..... 
}

完成上面的1,2步驟 在項目中創(chuàng)建模型, 就可以使用了。 詳細(xì)使用文檔,參考官網(wǎng)。

  1. 介紹 orm 切換不同的數(shù)據(jù)源執(zhí)行sql
由于在項目中需要切換不同的數(shù)據(jù)源執(zhí)行 

方法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';
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容