Factory utility that creates a PDO
object from environment configuration.
- It has not undergone extensive testing.
- Primarily intended for internal projects, subject to potential breaking changes without prior notice.
- There are likely many missing features.
The following environmental variables can be used:
PDO_FACTORY_ADAPTER
specifies which adapter will be used and how the rest of the environmental variables are going to be collected. Default 'mysql'${PDO_FACTORY_ADAPTER}_HOSTNAME
default 'localhost'${PDO_FACTORY_ADAPTER}_PORT
defaultNULL
, fallbacks to the default port of each adapter${PDO_FACTORY_ADAPTER}_USERNAME
defaultNULL
${PDO_FACTORY_ADAPTER}_PASSWORD
defaultNULL
${PDO_FACTORY_ADAPTER}_DATABASE
defaultNULL
${PDO_FACTORY_ADAPTER}_CHARSET
defaultNULL
MySQL
specific
MYSQL_UNIX_SOCKET
defaultNULL
. If it existsMYSQL_HOSTNAME
andMYSQL_PORT
are ommited
Postgres
specific
POSTGRES_SSL_MODE
defaultNULL
. See more
.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();