<?php namespace Lib; use Swoole\Database\PDOConfig; use Swoole\Database\PDOPool; /** * db 池 * @author:dc * @time 2023/2/13 15:03 * Class DbPool * @package Lib */ class DbPool { use DbQuery; /** * @var \Swoole\Database\PDOPool */ static $pool = null; /** * 实例 * DbPool constructor. */ public function __construct() { if(!static::$pool){ $pdoconfig = (new PDOConfig) ->withHost(DB_HOST) ->withPort(DB_PORT) ->withDbName(DB_DATABASE) ->withCharset('utf8mb4') ->withUsername(DB_USER) ->withPassword(DB_PASSWORD) ->withOptions([ \PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_ASSOC, \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'", \PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION, ]); static::$pool = new PDOPool($pdoconfig,1024); } // 获取链接 $this->client = static::$pool->get(); } /** * 结束 */ public function __destruct(){ $this->close(); } /** * 关闭链接 * @author:dc * @time 2024/5/30 10:30 */ public function close(){ self::$pool->put($this->client); $this->client = null; } }