summaryrefslogtreecommitdiff
path: root/src/model/DB.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/DB.php')
-rw-r--r--src/model/DB.php20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/model/DB.php b/src/model/DB.php
index 4e54015..47407ba 100644
--- a/src/model/DB.php
+++ b/src/model/DB.php
@@ -1,22 +1,22 @@
1<?php 1<?php
2// src/model/DB.php 2// src/model/DB.php
3 3
4// cette classe applique le pattern "singleton" 4// cette classe applique le pattern "singleton", il empêche la classe PDO d'être instanciée plusieurs fois
5// but: ne permettre qu'une seule instance de la classe (laquelle sera éventuellement globale) 5// l'instance est récupérable partout mais sans les inconvénients d'une variable globale
6 6
7// comment? 7// comment?
8// - Un attribut privé et statique contiendra l'instance unique de la classe 8// - le constructeur est privé, c'est à cette condition que l'instanciation devient contrôlable
9// - Un constructeur priafin d'empêcher l'instanciation depuis l'extérieur de la classe 9// - notre instance unique est stockée dans un attribut privé et statique
10// - Une méthode statique qui permet soit d'instancier la classe soit de retourner l'unique instance créée. 10// - une méthode statique appele le contructeur si l'instance unique n'existe pas encore, puis retourne l'instance
11 11
12class DB extends PDO 12class DB extends PDO
13{ 13{
14 // paramètres du constructeur de PDO (avec sqlite seul le premier est nécessaire) 14 // paramètres du constructeur de PDO
15 public static $dsn = ''; // Data Source Name = 1er paramètre 15 public static $dsn = ''; // Data Source Name = préfixe + hôte + port + nom de la base + encodage
16 //~ public static $dbms = 'sqlite';
17 //~ public static $user = ''; 16 //~ public static $user = '';
18 //~ public static $password = ''; 17 //~ public static $password = '';
19 //~ public static $options = ''; 18 //~ public static $options = '';
19
20 private static $Instance; 20 private static $Instance;
21 21
22 private function __construct() // exécuté une seul fois à cause du "if" dans getInstance() 22 private function __construct() // exécuté une seul fois à cause du "if" dans getInstance()
@@ -36,12 +36,12 @@ class DB extends PDO
36 } 36 }
37 } 37 }
38 38
39 // créer son objet avec: $Bdd = parent::getInstance(); 39 // créer son objet depuis Model avec: $db = parent::getInstance();
40 public static function getInstance(): self 40 public static function getInstance(): self
41 { 41 {
42 if(self::$Instance === null) 42 if(self::$Instance === null)
43 { 43 {
44 self::$Instance = new self(); 44 self::$Instance = new self;
45 } 45 }
46 return self::$Instance; 46 return self::$Instance;
47 } 47 }