Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2011, 20h38   #1
Invité de passage
 
Inscription : février 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 9
Points : 0
Points : 0
Par défaut POO classe connexion à la DB en PDO

Bonsoir,
1ers pas en Orienté Objet... J'avoue c'est encore vague pour moi.
Je tente une 1ère classe. Ce sera une classe Singleton pour la connexion (en PDO).
J'aimerais avoir les avis et critiques, voir si je continue sur cette base quelque chose de plus complet, voir si je m'y prend pas trop mal...
Ce n'est pas évident et les notions sont encore bien floues, aussi, je vous demanderais d'être compréhensifs (et simples)...

Merci de votre aide

index.php
Code :
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
 
<?php
//CONFIG includes
	define('INCLUDES','includes/');
	set_include_path(get_include_path().PATH_SEPARATOR.INCLUDES);
 
//CONFIG bdd + classes
	require_once('config.inc');
 
//CONSTANTES bdd
	$config['driver'] = DRIVER;
	$config['dbname'] = DBNAME;
	$config['host'] = HOST;
	$config['user'] = USER;
	$config['password'] = PASSWORD;
	$config['dsn'] = $config['driver'] 
					. ':dbname=' . $config['dbname'] 
					. ';host=' . $config['host'];
 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
		//$connexion =
		$connexion = Connexion::getInstanceConnexion($config);
		var_dump($connexion);
		$host = Connexion::getHost();
		var_dump($host);
		echo 'Hote : '.$host;
		?>
    </body>
</html>
config.inc
//constantes de ma connexion
//spl autoload pour mes classes

Connexion.class.php
Code :
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;
    }
}
?>
Merci d'avance de vos conseils
Dvlop.com est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h33.


 
 
 
 
Partenaires

Hébergement Web