kristos80/pdo-factory

1.0.0 2023-12-16 16:07 UTC

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_HOSTNAMEMYSQL_PORT

Postgres 特定

示例用法

.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();