burger-quizz/dao/bdd.php

67 lines
1.8 KiB
PHP

<?php
/**
* @brief Classe gérant le comportement à la base de données
* @brief Sert d'intermédiaire entre la BDD et le PDO
*/
class bdd {
///Instance de la connexion à la base de données
private $instancePDO;
///Instance statique de la base de données
private static $bdd;
/**
* @brief Construit une nouvelle connexion à la base de données
*/
private function __construct() {
try {
//Mise en place des options
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);
//Création du PDO
$this->instancePDO = new PDO(config::$bdd_address, config::$bdd_user, config::$bdd_password, $options);
//On précise les options du PDO
$this->instancePDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
if (config::$debug) {
//En cas de bug et si le mode DEBUG est activé
//On affiche un message
echo 'Connexion échouée : ' . $e->getMessage();
header("Refresh: 0;URL=index.php?page=500");
}
}
}
/**
* @brief Accesseur de l'instance bdd
* @return instance BDD
* @note Création automatique d'une nouvelle instance si besoin
*/
public static function getInstance() {
if (!isset(self::$bdd)) {
//Si l'instance n'a pas encore été crée
//On en créer une nouvelle et on la stocke
self::$bdd = new bdd();
}
//On renvoie l'instance sauvegardée
return self::$bdd;
}
/**
* @brief Accesseur pour l'objet PDO de la classe
* @return PDO
*/
public function getPDO() {
return $this->instancePDO;
}
}
?>