<?
php
// config/[Link]
// Configuration de la connexion à la base de données
// Paramètres de connexion
define('DB_HOST', 'localhost');
define('DB_NAME', 'gestion_sortie');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_CHARSET', 'utf8mb4');
class Database {
private static $instance = null;
private $conn;
private function __construct() {
try {
$dsn = "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=" .
DB_CHARSET;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES " . DB_CHARSET
];
$this->conn = new PDO($dsn, DB_USER, DB_PASS, $options);
} catch(PDOException $e) {
die("Erreur de connexion : " . $e->getMessage());
}
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
public function getConnection() {
return $this->conn;
}
// Empêcher le clonage de l'instance
private function __clone() {}
// Empêcher la désérialisation de l'instance
public function __wakeup() {
throw new Exception("Cannot unserialize singleton");
}
}
// Fonction helper pour obtenir la connexion
function getDB() {
return Database::getInstance()->getConnection();
}
?>