From 598cef3bd0287d9d88ee161039dffc09189b6972 Mon Sep 17 00:00:00 2001 From: vbochet <vbochet@gmail.com> Date: Thu, 31 Mar 2016 19:29:53 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20d'un=20fichier=20Database.php?= =?UTF-8?q?=20dans=20le=20r=C3=A9pertoire=20app/kernel/,=20qui=20g=C3=A8re?= =?UTF-8?q?=20les=20connexions=20=C3=A0=20la=20base=20de=20donn=C3=A9es=20?= =?UTF-8?q?(pour=20MVC).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/kernel/Database.php | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 app/kernel/Database.php diff --git a/app/kernel/Database.php b/app/kernel/Database.php new file mode 100644 index 0000000..8cde5e1 --- /dev/null +++ b/app/kernel/Database.php @@ -0,0 +1,27 @@ +<?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 + } +} -- GitLab