Subversion Repositories Applications.papyrus

Rev

Rev 2051 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2014 aurelien 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
    	$this->registre = Registre::getInstance() ;
20
    	$this->gestionnaire_erreur = GestionnaireErreur::getInstance() ;
21
    	$this->type = $this->registre->get('bdd_type');
22
    	$this->hote = $this->registre->get('bdd_hote');
23
    	$this->bdd_nom = $this->registre->get('bdd_nom');
24
    	$this->utilisateur = $this->registre->get('bdd_utilisateur');
25
    	$this->pass = $this->registre->get('bdd_pass');
26
 
27
    	$this->dsn = $this->type.':dbname='.$this->bdd_nom.';host='.$this->hote;
28
    }
29
 
30
    /**
2052 Jean-Pasca 31
     * Fonction qui appelle la bonne fonction de requete suivant le type de bdd.
32
     *
2014 aurelien 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
    	// on ne se connecte que lors du premier appel à une requete
38
    	if($this->connexion == null) {
39
    		$this->connecter();
40
    	}
41
 
42
		return $this->connexion->query($requete);
43
    }
44
 
45
    /**
2052 Jean-Pasca 46
     * Connection à la base de données en utilisant les informations fournies par
47
     * le fichier de configuration.
48
     * private et final car n'a pas vocation a être appelée par l'utilisateur.
49
     *
2014 aurelien 50
     * @throws PDOException une exception dans le cas ou là connexion échoue
51
     */
52
    final private function connecter() {
53
		try {
54
		    $this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass);
55
		} catch (PDOException $e) {
56
 
57
		}
58
    }
59
 
60
    final protected function proteger($chaine) {
2052 Jean-Pasca 61
    	// Connection lors du premier appel à une requete
2014 aurelien 62
    	if($this->connexion == null) {
63
    		$this->connecter();
64
    	}
65
 
66
    	return $this->connexion->quote($chaine);
67
    }
68
 
69
    /**
70
     * Destructeur de classe, se contente de fermer explicitement la connexion
71
     */
72
    final public function __destruct() {
73
    	if($this->connexion != null) {
74
	    	$this->connexion = null ;
75
    	}
76
    }
77
}
78
?>