diff options
Diffstat (limited to 'src/model/DB.php')
-rw-r--r-- | src/model/DB.php | 20 |
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 privé afin 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 | ||
12 | class DB extends PDO | 12 | class 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 | } |