PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]; try { self::$instance = new PDO($dsn, $dbCfg['username'], $dbCfg['password'], $options); } catch (PDOException $e) { throw new \Exception('Database connection failed: ' . $e->getMessage()); } } return self::$instance; } public static function connect(array $config): PDO { return self::init($config); } public static function getInstance(): PDO { if (self::$instance === null) { $config = require __DIR__ . '/../../config/config.php'; return self::init($config); } return self::$instance; } }