kristos80 / pdo-factory
1.0.0
2023-12-16 16:07 UTC
Requires
- php: >=8.0
- ext-pdo: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-16 17:44:44 UTC
README
这是一个工厂实用工具,可以从环境配置中创建一个 PDO
对象。
正在进行中(WIP)—— 请勿在生产环境中使用
- 它尚未经过广泛的测试。
- 主要用于内部项目,可能会在没有事先通知的情况下进行破坏性更改。
- 可能缺少许多功能。
以下环境变量可以使用
PDO_FACTORY_ADAPTER
指定将使用哪个适配器以及其余环境变量将如何收集。默认 'mysql'${PDO_FACTORY_ADAPTER}_HOSTNAME
默认 'localhost'${PDO_FACTORY_ADAPTER}_PORT
默认NULL
,回退到每个适配器的默认端口${PDO_FACTORY_ADAPTER}_USERNAME
默认NULL
${PDO_FACTORY_ADAPTER}_PASSWORD
默认NULL
${PDO_FACTORY_ADAPTER}_DATABASE
默认NULL
${PDO_FACTORY_ADAPTER}_CHARSET
默认NULL
MySQL 特定
MYSQL_UNIX_SOCKET
默认NULL
。如果存在,则省略MYSQL_HOSTNAME
和MYSQL_PORT
Postgres 特定
POSTGRES_SSL_MODE
默认NULL
。 更多信息
示例用法
.env
PDO_FACTORY_ADAPTER=mysql MYSQL_HOSTNAME=127.0.0.1 MYSQL_PORT=23306 MYSQL_USERNAME=root MYSQL_PASSWORD=mysql MYSQL_DATABASE=slim
db.php
<?php declare(strict_types=1); use Dotenv\Dotenv; use Kristos80\PdoFactory\PdoFactory; require_once __DIR__ . "/../../vendor/autoload.php"; # Load .env somehow # `Dotenv\Dotenv` is not part of this library $dotEnv = Dotenv::createImmutable(__DIR__); $dotEnv->load(); $mysqlPdo = PdoFactory::createFromEnv();