PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]); return self::$pdo = $pdo; } catch (PDOException $e) { throw new RuntimeException('Connexion BDD échouée.', previous: $e); } } /** @deprecated Utiliser Database::get() */ public static function pdo(): PDO { @trigger_error(__METHOD__.' est déprécié. Utiliser Database::get()', E_USER_DEPRECATED); return self::get(); } /** @deprecated Utiliser Database::get() */ public static function getPdo(): PDO { @trigger_error(__METHOD__.' est déprécié. Utiliser Database::get()', E_USER_DEPRECATED); return self::get(); } /** @deprecated Utiliser Database::get() */ public static function getInstance(): PDO { @trigger_error(__METHOD__.' est déprécié. Utiliser Database::get()', E_USER_DEPRECATED); return self::get(); } public static function transactional(callable $fn) { $pdo = self::get(); try { $pdo->beginTransaction(); $ret = $fn($pdo); $pdo->commit(); return $ret; } catch (\Throwable $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } throw $e; } } }