nayazkaya / ddj-database
Simple multi-connection PDO helper with .env config, robust defaults, and reconnection TTL.
Installs: 2
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:Shell
Requires
- php: ^8.1
- ext-pdo: *
- ddeboer/imap: ^1.21
- phpmailer/phpmailer: ^6.10
- phpoffice/phpspreadsheet: ^5.1
- vlucas/phpdotenv: ^5.6
Suggests
- ext-gd: Pour la gestion d’images (graphiques) avec PhpSpreadsheet
- ext-imap: Requis par ddeboer/imap
- ext-intl: Pour le formatage internationalisé
- ext-mbstring: Recommandé pour manipuler les chaînes multibytes
- ext-xml: Recommandé par PhpSpreadsheet
- ext-zip: Fortement recommandé pour PhpSpreadsheet (lecture/écriture XLSX)
This package is auto-updated.
Last update: 2025-09-22 14:37:44 UTC
README
Helper PDO minimaliste avec:
- Config via
.env
(pas de secrets commités) - Connexions multiples (
default
,analytics
, etc.) - Options PDO sûres par défaut
- Lazy connection, TTL/ping, fermeture des connexions
- Exceptions typées avec DSN masqué
Installation
composer require nayazkaya/ddj-database
Configuration via .env
Copier .env.example
en .env
et ajuster:
DB_CONNECTIONS=default DB_DEFAULT_DSN=mysql:host=127.0.0.1;port=3306;dbname=app;charset=utf8mb4 DB_DEFAULT_USER=app_user DB_DEFAULT_PASS=change-me DB_DEFAULT_TTL=0 DB_DEFAULT_OPTIONS_ERRMODE_EXCEPTION=true DB_DEFAULT_OPTIONS_EMULATE_PREPARES=false DB_DEFAULT_OPTIONS_DEFAULT_FETCH_ASSOC=true
Plusieurs connexions
DB_CONNECTIONS=default,analytics DB_ANALYTICS_DSN=pgsql:host=10.0.0.12;port=5432;dbname=warehouse DB_ANALYTICS_USER=etl_user DB_ANALYTICS_PASS=super-secret DB_ANALYTICS_TTL=3600
Utilisation
use DDJ\Database\Database; $pdo = Database::getConnection(); // 'default' $pdoAnalytics = Database::getConnection('analytics');
Options PDO par défaut
ERRMODE_EXCEPTION
EMULATE_PREPARES = false
DEFAULT_FETCH_MODE = FETCH_ASSOC
Surcharges via .env
(true/false) :
DB_DEFAULT_OPTIONS_ERRMODE_EXCEPTION=true DB_DEFAULT_OPTIONS_EMULATE_PREPARES=false DB_DEFAULT_OPTIONS_DEFAULT_FETCH_ASSOC=true
Robustesse
- Lazy connection (créée au premier
getConnection()
). - TTL optionnel (reconnexion périodique) :
DB_<NAME>_TTL=3600
(0 = désactivé). - Ping auto (si la connexion tombe, nouvelle connexion au prochain appel).
- Fermeture manuelle:
Database::closeConnection('default'); Database::closeAll();
- Exception:
DDJ\Database\ConnectionException
(DSN masqué).
Licence
MIT