读写分离

注册读写链接配置信息

首先,我们需要按照 配置信息注册 注册 读 / 写 两个链接的信息

主要代码大概如下

  1. DbManager::getInstance()->addConnection($con, 'read');
  2. DbManager::getInstance()->addConnection($con2, 'write');

指定使用链接

有两种方式可以使用 可以根据自己的需求选择

主要利用AbstractModel提供的connection()方法

  1. function connection(string $name, bool $isTemp = false)

::: tip 提示 第二个参数需要传入为true,表示临时使用,否则该认定为固定使用
建议只在临时使用时设置该方式,如果要固定使用则从Model类文件中定义。 :::

Model继承定义

  1. class Test extends AbstractModel{
  2. /** 这里因为不是使用默认的配置链接名 所以需要指定 */
  3. protected $connectionName = 'write';
  4. /** get 方法使用读链接 */
  5. public function get($where = null, bool $returnAsArray)
  6. {
  7. $this->connection('read', true);
  8. return parent::get($where, $returnAsArray);
  9. }
  10. }

外部使用

  1. Test::create()->connection('read',true)->all();