geeshoe/db-connector

该包已废弃,不再维护。未建议替代包。

PHP 数据库连接库。

v2.1.0 2019-05-02 21:15 UTC

This package is auto-updated.

Last update: 2024-05-14 06:25:40 UTC


README

Build Status

Db-Connector 是一套工具,旨在帮助您在 PHP 应用程序中管理和提供数据库连接。

PHP 7.1 的支持已于 2019 年 12 月 1 日结束。请升级到 db-connector 的最新版本。

入门

Db-Connector 兼容 PSR-1PSR-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 扩展是否启用,请在 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 - 设置为 truefalse 以启用/禁用持久连接。
  • GSD_DB_DATABASE - (可选) 在连接级别而不是在 SQL 语句级别选择要使用的数据库。GSD_DB_DATABASE 不需要在环境中设置,如果不使用它。
  • GSD_DB_SSL - 设置为 truefalse 以启用 SSL/TLS。
  • GSD_DB_CA - 证书颁发机构 .pem 文件的路径。
  • GSD_DB_CERT - 证书 .pem 文件的路径。
  • GSD_DB_KEY - 证书密钥 .pem 文件的路径。
  • GSD_DB_VERIFY - 设置为 truefalse。提供了一种禁用服务器 SSL 证书验证的方法。

GSD_DB_CAGSD_DB_CERTGSD_DB_KEYGSD_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 时需要。根据您的环境,cacertkeyverify 都是可选的。

数组配置

可以使用 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 的更详细文档即将发布。在此期间,代码库中的所有方法和属性都得到了良好的文档记录。

作者

源代码可在 (https://github.com/geeshoe/db-connector) 获取

如有疑问、评论或抱怨,请通过以下方式联系我

jr (at) geeshoe (dot) com