gonzie / pdoload
一行代码即可提供读写分离和负载均衡的小型PDO包装器。
v0.3.2
2018-02-04 18:10 UTC
Requires
- php: >=7.0
Requires (Dev)
- php: >=7.0
- phpunit/phpunit: ^6
- squizlabs/php_codesniffer: 3.*
This package is not auto-updated.
Last update: 2024-09-20 07:45:36 UTC
README
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/