Skip to content
Extraits de code Groupes Projets
Valider 598cef3b rédigé par vbochet's avatar vbochet
Parcourir les fichiers

Création d'un fichier Database.php dans le répertoire app/kernel/, qui gère...

Création d'un fichier Database.php dans le répertoire app/kernel/, qui gère les connexions à la base de données (pour MVC).
parent 9f94a334
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!1Merge de dev-nestor sur dev
<?php
class Database { // classe de gestion de connexion à la BDD
static protected $_instance = null; // variable contenant l'instance de connexion à la BDD, null par défaut
protected $_db; // variable contenant la connexion PDO à la BDD
static public function getInstance() { // renvoie un instance de connexion à la BDD
if(is_null(self::$_instance)) { // si on n'a pas encore réalisé de connexion
self::$_instance = new Database(); // on réalise la connexion en instanciant la classe Database
}
return self::$_instance; // on renvoie l'instance qui contient tout ce qu'il faut
}
protected function __construct() { // constructeur, qui instancie PDO pour se connecter à la BDD et qui stocke cette connexion dans l'attribut $_db
$this->_db = new PDO(
"mysql:host=localhost;dbname=projweb;charset=utf8", // penser à modifier le nom de l'hébergeur et de la base
"root", // ainsi que l'identifiant
"" // et le mot de passe
);
}
public function __call($method, array $arg) { // méthode magique qui permet d'exécuter un bloc dans le cas où on appellerait une métohde qui n'est pas définie dans Database
// $method = le nom de la méthode appelée, array $arg = arguments passés à la méthode, dans un tableau (sans le array, chaîne de caratère avec les arguments séparés par une virgule
return call_user_func_array(array($this->_db, $method), $arg); // appel de la méthode $methdod de l'objet $this->_db avec comme arguments $arg
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter