summaryrefslogtreecommitdiff
path: root/php/Connection.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/Connection.php')
-rw-r--r--php/Connection.php45
1 files changed, 0 insertions, 45 deletions
diff --git a/php/Connection.php b/php/Connection.php
deleted file mode 100644
index e944f69..0000000
--- a/php/Connection.php
+++ /dev/null
@@ -1,45 +0,0 @@
1<?php
2// php/Connection.php
3
4// cette classe suit le pattern "singleton"
5// but: ne permettre qu'une seule instance de la classe (laquelle sera éventuellement globale)
6
7// comment?
8// - Un attribut privé et statique qui conservera l'instance unique de la classe
9// ainsi si un enfant de la classe "connection" est instancié plusieurs fois, il n'y aura toujours qu'une seule instance de PDO
10// - Un constructeur privé afin d'empêcher la création d'objet depuis l'extérieur de la classe
11// - Une méthode statique qui permet soit d'instancier la classe soit de retourner l'unique instance créée.
12// impossible de créer deux instances (ici de PDO)
13
14class Connection extends PDO
15{
16 // paramètres du constructeur de PDO, avec sqlite seul le premier est nécessaire
17 public static $dsn = ''; // Data Source Name = 1er paramètre
18 //~ public static $user = '';
19 //~ public static $password = '';
20 //~ public static $options = '';
21 private static $Instance;
22
23 private function __construct()
24 {
25 try
26 {
27 parent::__construct(self::$dsn); // renseigne la variable $dsn de la classe PDO
28 $this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // $this pour la méthode du parent PDO
29 }
30 catch(PDOException $e)
31 {
32 die('Erreur : '.$e->getMessage());
33 }
34 }
35
36 // créer son objet avec: $bdd = Connection::getInstance();
37 public static function getInstance(): self
38 {
39 if(self::$Instance === null)
40 {
41 self::$Instance = new self();
42 }
43 return self::$Instance;
44 }
45}