1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
<?php
// Connexion = classe Singleton
class Connexion
{
//durée d'execution du script
private $_startTime;
private $_endTime;
private $_time;
//valeurs de la connexion à la BDD à null
public static $_connexionBdd = null;
private static $_instanceConnexion = null;
private static $_host = null;
private static $_bdd = null;
private static $_login = null;
private static $_pswd = null;
private function __construct($config=false)
{
//si fction construct déclenchée, tps départ en microsecondes
$this->_startTime = round(microtime(), "6");
self::$_host = $config['host'];
self::$_bdd = $config['dbname'];
self::$_login = $config['user'];
self::$_pswd = $config['password'];
//connexion
try
{
self::$_connexionBdd=new PDO($config['dsn'],$config['user'],$config['password']);
}
//gestion des erreurs
catch(PDOException $e)
{
echo 'Erreur de connexion au serveur MySQL ! <br /> Erreur détectée : '.$e->getMessage();
exit();
}
}
//"anti-cloning"
private function __clone()
{
}
/* 2nd type d'"anti-cloning" :
public function __clone()
{
throw new Exception('ERREUR DE MANIPULATION : Tentative de clônage de la classe Singleton Connexion !');
}
*/
//lancement de la connexion
public static function getInstanceConnexion($config)
{
//si la propriété $_instanceConnexion vaut null, créée la connexion, sinon renvoit sa valeur
if (is_null(self::$_instanceConnexion))
{
self::$_instanceConnexion = new Connexion($config);
}
return self::$_instanceConnexion;
}
//fctions publiques pour obtenir et lire les infos de connexion
public static function getHost()
{
return self::$_host;
}
public static function getBdd()
{
return self::$_bdd;
}
public static function getLogin()
{
return self::$_login;
}
public static function getPswd()
{
return self::$_pswd;
}
//destructeur
public function __destruct()
{
//calcul du temps d'éxecution du script de connexion BDD en microsecondes
//fin du script
$this->_endTime = round(microtime(), "6");
//calcul
$this->_time = $this->_endTime - $this->_startTime;
$this->_time = round($this->_time, "6");
echo '<hr />Tps dbt : ' . $this->_startTime
.'<br />Tps fin : ' . $this->_endTime
.'<br />Temps d\'éxecution du script : ' . $this->_time;
}
}
?> |
Partager