Subversion Repositories Applications.papyrus

Rev

Rev 2051 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2051 Rev 2052
1
<?php
1
<?php
2
 
2
 
3
abstract class Modele {
3
abstract class Modele {
4
 
4
 
5
	private $registre;
5
	private $registre;
6
	private $gestionnaire_erreur;
6
	private $gestionnaire_erreur;
7
	private $dsn;
7
	private $dsn;
8
	private $type;
8
	private $type;
9
	private $hote;
9
	private $hote;
10
	private $bdd_nom;
10
	private $bdd_nom;
11
	private $utilisateur;
11
	private $utilisateur;
12
	private $pass ;
12
	private $pass ;
13
	private $connexion = null;
13
	private $connexion = null;
14
 
14
 
15
	/**
15
	/**
16
	 * Constructeur par défaut, appelé à l'initialisation
16
	 * Constructeur par défaut, appelé à l'initialisation
17
	 */
17
	 */
18
    final public function __construct() {
18
    final public function __construct() {
19
    	$this->registre = Registre::getInstance() ;
19
    	$this->registre = Registre::getInstance() ;
20
    	$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ;
20
    	$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ;
21
    	$this->type = $this->registre->get('bdd_type');
21
    	$this->type = $this->registre->get('bdd_type');
22
    	$this->hote = $this->registre->get('bdd_hote');
22
    	$this->hote = $this->registre->get('bdd_hote');
23
    	$this->bdd_nom = $this->registre->get('bdd_nom');
23
    	$this->bdd_nom = $this->registre->get('bdd_nom');
24
    	$this->utilisateur = $this->registre->get('bdd_utilisateur');
24
    	$this->utilisateur = $this->registre->get('bdd_utilisateur');
25
    	$this->pass = $this->registre->get('bdd_pass');
25
    	$this->pass = $this->registre->get('bdd_pass');
26
    	
26
    	
27
    	$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote;
27
    	$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote;
28
    }
28
    }
29
    
29
    
30
    /**
30
    /**
31
     * Fonction qui appelle la bonne fonction de requete suivant le type de bdd 
31
     * Fonction qui appelle la bonne fonction de requete suivant le type de bdd.
-
 
32
     *  
32
     * @param string la requete à effectuer
33
     * @param string la requete à effectuer
33
     * @return PDOStatement un objet contenant le résultat de la requête
34
     * @return PDOStatement un objet contenant le résultat de la requête
34
     */
35
     */
35
    final protected function requete($requete) {
36
    final protected function requete($requete) {
36
    	// on ne se connecte que lors du premier appel à une requete
37
    	// on ne se connecte que lors du premier appel à une requete
37
    	if($this->connexion == null) {
38
    	if($this->connexion == null) {
38
    		$this->connecter();
39
    		$this->connecter();
39
    	}
40
    	}
40
		
41
		
41
		return $this->connexion->query($requete);
42
		return $this->connexion->query($requete);
42
    }
43
    }
43
    
44
    
44
    /**
45
    /**
45
     * Connecte à la base de données en utilisant les informations fournies par 
46
     * Connection à la base de données en utilisant les informations fournies par 
-
 
47
     * le fichier de configuration.
46
     * le fichier de configuration, private et final car n'a pas vocation a être appelée
48
     * private et final car n'a pas vocation a être appelée par l'utilisateur.
47
     * par l'utilisateur
49
     * 
48
     * @throws PDOException une exception dans le cas ou là connexion échoue
50
     * @throws PDOException une exception dans le cas ou là connexion échoue
49
     */
51
     */
50
    final private function connecter() {
52
    final private function connecter() {
51
		try {
53
		try {
52
		    $this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass);
54
		    $this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass);
53
		} catch (PDOException $e) {
55
		} catch (PDOException $e) {
54
 
56
 
55
		}
57
		}
56
    }
58
    }
57
    
59
    
58
    final protected function proteger($chaine) {
60
    final protected function proteger($chaine) {
59
    	// on ne se connecte que lors du premier appel à une requete
61
    	// Connection lors du premier appel à une requete
60
    	if($this->connexion == null) {
62
    	if($this->connexion == null) {
61
    		$this->connecter();
63
    		$this->connecter();
62
    	}
64
    	}
63
    	
65
    	
64
    	return $this->connexion->quote($chaine);
66
    	return $this->connexion->quote($chaine);
65
    }
67
    }
66
    
68
    
67
    /**
69
    /**
68
     * Destructeur de classe, se contente de fermer explicitement la connexion
70
     * Destructeur de classe, se contente de fermer explicitement la connexion
69
     */
71
     */
70
    final public function __destruct() {
72
    final public function __destruct() {
71
    	if($this->connexion != null) { 
73
    	if($this->connexion != null) { 
72
	    	$this->connexion = null ;
74
	    	$this->connexion = null ;
73
    	}
75
    	}
74
    }
76
    }
75
}
77
}
76
?>
78
?>