ConnectionFactory
in package
Factory for creating PDO database connections.
Centralizes database connection logic and supports multiple adapters (SQLite, MySQL, PostgreSQL).
Table of Contents
Methods
- createFromConfig() : PDO
- Create a PDO connection from configuration array
- createFromSettings() : PDO
- Create a PDO connection from SettingManager
- initializeConnection() : void
- Initialize database-specific settings
- initializeMysql() : void
- Initialize MySQL-specific settings
- initializePostgresql() : void
- Initialize PostgreSQL-specific settings
- initializeSqlite() : void
- Initialize SQLite-specific settings
- parseUrl() : array<string|int, mixed>
- Parse a database URL into configuration array
Methods
createFromConfig()
Create a PDO connection from configuration array
public
static createFromConfig(array<string|int, mixed> $config) : PDO
Supports both URL-based configuration and individual parameters. If 'url' is provided, it will be parsed and merged with individual parameters. Individual parameters take precedence over URL-parsed values.
Parameters
- $config : array<string|int, mixed>
-
Database configuration
Tags
Return values
PDOcreateFromSettings()
Create a PDO connection from SettingManager
public
static createFromSettings(SettingManager $settings) : PDO
Parameters
- $settings : SettingManager
Tags
Return values
PDOinitializeConnection()
Initialize database-specific settings
private
static initializeConnection(PDO $pdo, string $adapter) : void
Parameters
- $pdo : PDO
- $adapter : string
initializeMysql()
Initialize MySQL-specific settings
private
static initializeMysql(PDO $pdo) : void
Parameters
- $pdo : PDO
initializePostgresql()
Initialize PostgreSQL-specific settings
private
static initializePostgresql(PDO $pdo) : void
Parameters
- $pdo : PDO
initializeSqlite()
Initialize SQLite-specific settings
private
static initializeSqlite(PDO $pdo) : void
Parameters
- $pdo : PDO
parseUrl()
Parse a database URL into configuration array
private
static parseUrl(string $url) : array<string|int, mixed>
Supports common database URL formats:
- postgresql://user:pass@host:5432/dbname?option=value
- mysql://user:pass@host:3306/dbname?charset=utf8mb4
- sqlite:///path/to/database.db or sqlite::memory:
Parameters
- $url : string
-
Database URL
Tags
Return values
array<string|int, mixed> —Parsed configuration