Subversion Repositories Applications.papyrus

Rev

Rev 2052 | Details | Compare with Previous | Last modification | View Log | RSS feed

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