gonzie / pdoload

一行代码即可提供读写分离和负载均衡的小型PDO包装器。

维护者

详细信息

github.com/gonzie/pdoload

源代码

问题

安装: 154

依赖者: 0

建议者: 0

安全: 0

星标: 12

关注者: 2

分支: 4

开放问题: 1

类型:package

v0.3.2 2018-02-04 18:10 UTC

This package is not auto-updated.

Last update: 2024-09-20 07:45:36 UTC


README

Travis CI build PHP from Packagist License from pugx

PDOLoad

PDOLoad 是一个小型PDO包装器/抽象层,通过一行代码提供读写端点和负载均衡功能。虽然负载均衡通常包含在大多数主要的PHP框架中,但在处理大型遗留项目时,这很难实现。

主要功能

  • 添加多个读和写端点。
  • 一行实现。无需重写您的PDO查询。
  • 事务感知。在事务活跃期间进行的任何读取都将执行在写连接上。

开始使用

  • PHP >= 7.0 是必需的
  • 使用 composer(推荐)或手动安装 PDOLoad
  • 配置您的连接,然后您就可以开始了!

使用 Composer 安装

composer require gonzie/pdoload

如何使用

PDOLoad 提供尽可能多的选择,几乎无需修改。一个普通的PDO连接设置如下

$dbh = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password');

(最基本的设置)

要使用PDOLoad的最简版本,您可以将代码修改如下

$dbh = new Gonzie\PDOLoad\PDOLoad('mysql:host=localhost;dbname=testdb;charset=utf8mb4', 'username', 'password');

或者,要使用PDOLoad的全部功能,以及它真正设计的目的,您可以传递一个包含设置的 array 来设置。

<?php
$settings = [
    'driver' => 'mysql',
    'reader' => [
        [
            'host' => 'mysuperduperdbreader_1.com',
            'dbname' =>  'test',
            'user' => 'gonzie',
            'password' => 'password',
            'port' => '3306'
            'charset' => 'utf8mb4',
        ],
        [
            'host' => 'mysuperduperdbreader_2.com',
            'dbname' =>  'test',
            'user' => 'gonzie',
            'password' => 'password',
            'charset' => 'utf8mb4',
        ],
    ],
    'writer' => [
        [
            'host' => 'mysuperduperdbwriter_1.com',
            'dbname' =>  'test',
            'user' => 'gonzie',
            'password' => 'password',
            'charset' => 'utf8mb4',
        ],
    ],
    'balancer' => 'round-robin',
];

$dbh = new Gonzie\PDOLoad\PDOLoad($settings);

很简单吧?以下是对设置数组的说明

连接数组

您可以根据喜好添加其他选项,只要 overwrite_allowed 设置为 true

贡献

对项目的任何更改都必须遵守PSR标准(PSR 2 - 12,PSR4以及其他适用的情况)。

请在提交任何代码之前运行 phpcs。

./vendor/bin/phpcs --standard=psr2 src/