geeshoe / db-connector
PHP 数据库连接库。
Requires
- php: ^7.1
- ext-pdo: *
- ext-pdo_mysql: *
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^8
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^3
- symfony/dotenv: ^4.2
This package is auto-updated.
Last update: 2024-05-14 06:25:40 UTC
README
Db-Connector 是一套工具,旨在帮助您在 PHP 应用程序中管理和提供数据库连接。
PHP 7.1 的支持已于 2019 年 12 月 1 日结束。请升级到 db-connector 的最新版本。
入门
Db-Connector 兼容 PSR-1、PSR-2 以及 PSR-4。
最新推荐版本:v2.1.0,发布于 2019 年 5 月 2 日
测试覆盖率:99%,包含单元测试和功能测试。
Time: 288 ms, Memory: 6.00 MB
OK (40 tests, 94 assertions)
先决条件
Db-Connector 与 MySQL 和 MariaDb 数据库兼容。计划在未来的版本中实现对其他数据库的支持。
- PHP 7.2+
- PDO_MYSQL 扩展
- PDO_JSON 扩展 - 如果使用提供的 JSON 配置适配器。
要检查上述 PHP 扩展是否启用,请在 CLI 中运行以下命令或在您的 web 服务器上的非公开页面上使用 phpinfo()。
phpinfo(); <-- Use with script on web server.
php -i <-- Use with CLI
安装
要将 Db-Connector 添加到您的项目中,请运行
composer require geeshoe/db-connector
配置
可以使用多种方法设置 Db-Connector 的配置参数。JSON、数组和环境配置适配器都是现成的。其他格式即将推出。
您可以通过扩展 AbstractConfigObject 来创建自己的配置适配器。
环境变量配置
EnvConfigAdapter 解析以下环境变量以用于数据库连接
GSD_DB_HOST
- 数据库服务器的名称或 IP。GSD_DB_PORT
- 数据库服务器的端口号。GSD_DB_USER
- 数据库使用的用户名。GSD_DB_PASSWORD
- 用户的密码。GSD_DB_PERSISTENT
- 设置为true
或false
以启用/禁用持久连接。GSD_DB_DATABASE
- (可选) 在连接级别而不是在 SQL 语句级别选择要使用的数据库。GSD_DB_DATABASE
不需要在环境中设置,如果不使用它。GSD_DB_SSL
- 设置为true
或false
以启用 SSL/TLS。GSD_DB_CA
- 证书颁发机构 .pem 文件的路径。GSD_DB_CERT
- 证书 .pem 文件的路径。GSD_DB_KEY
- 证书密钥 .pem 文件的路径。GSD_DB_VERIFY
- 设置为true
或false
。提供了一种禁用服务器 SSL 证书验证的方法。
GSD_DB_CA
、GSD_DB_CERT
、GSD_DB_KEY
和 GSD_DB_VERIFY
仅当 GSD_DB_SSL
设置为 true
时才需要。
JSON 配置
将包含的 dbConnector_DIST.json 复制到项目公共 Web 根目录之外的安全位置。
更改值以反映您的数据库配置。
{
"dbConnector" : {
"host": "127.0.0.1",
"port": "3306",
"user": "myUsername",
"password": "SomePassword",
"database": "OptionalSeeDocumentation",
"persistent": false,
"ssl": false,
"sslParams": {
"ca": "/path/to/ca",
"cert": "/path/to/cert",
"key": "/path/to/key",
"verify": false
}
}
}
"database"
参数不是必需的,但必须在配置文件中声明。如果您希望在自己的应用程序中处理要使用的数据库,只需将 "database"
设置为 ""
。
通过将 "persistent"
设置为 true
来启用持久连接。
sslParams
仅在将 ssl
设置为 true 时需要。根据您的环境,ca
、cert
、key
和 verify
都是可选的。
数组配置
可以使用 ArrayConfigAdapter 通过使用配置参数数组。ArrayConfigAdapter 的 __construct() 方法需要连接参数数组。
$config = [
'host' => '127.0.0.1',
'port' => 1234,
'user' => 'unit',
'password' => 'test',
'persistent' => true,
'ssl' => false,
'ca' => '/path/to/file,
'cert' => '/path/to/file,
'key' => '/path/to/file,
'verify' => true
];
有关持久连接的更多信息。
用法
确定您想要用于解析数据库凭证的方法。
使用 EnvConfigAdapter
use Geeshoe\DbConnector\ConfigAdapter\EnvConfigAdapter;
$configAdapter = new EnvConfigAdapter();
$configAdapter->initialize();
$credentialsObject = $configAdapter->getParams();
使用 JsonConfigAdapter
use Geeshoe\DbConnector\ConfigAdapter\JsonConfigAdapter;
$configAdapter = new JsonConfigAdapter('/path/to/dbConnector.json');
$configAdapter->initialize();
$credentialsObject = $configAdapter->getParams();
使用 ArrayConfigAdapter
use Geeshoe\DbConnector\ConfigAdapter\ArrayConfigAdapter;
$configAdapter = new ArrayConfigAdapter(['host'=> 'localhost', 'port' => 1234]);
$configAdapter->initialize();
$credentialsObject = $configAdapter->getParams();
在调用上述任何方法的 getParams() 之后,创建一个新的 PDO 数据库连接如下
$connector = new DbConnector($credentialsObject);
$dbc = $connector->getConnection();
getConnection()
返回一个新的PDO 对象,该对象已准备好使用。
文档
Db-Connector 的更详细文档即将发布。在此期间,代码库中的所有方法和属性都得到了良好的文档记录。
作者
- Jesse Rushlow - 首席开发者 - geeShoe 开发
源代码可在 (https://github.com/geeshoe/db-connector) 获取
如有疑问、评论或抱怨,请通过以下方式联系我
jr (at) geeshoe (dot) com