Subversion Repositories Applications.papyrus

Rev

Rev 2014 | Rev 2052 | 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
    /**
31
     * Fonction qui appelle la bonne fonction de requete suivant le type de bdd
32
     * @param string la requete à effectuer
33
     * @return PDOStatement un objet contenant le résultat de la requête
34
     */
35
    final protected function requete($requete) {
36
    	// on ne se connecte que lors du premier appel à une requete
37
    	if($this->connexion == null) {
38
    		$this->connecter();
39
    	}
40
 
41
		return $this->connexion->query($requete);
42
    }
43
 
44
    /**
45
     * Connecte à la base de données en utilisant les informations fournies par
46
     * le fichier de configuration, private et final car n'a pas vocation a être appelée
47
     * par l'utilisateur
48
     * @throws PDOException une exception dans le cas ou là connexion échoue
49
     */
50
    final private function connecter() {
51
		try {
52
		    $this->connexion = new PDO($this->dsn,$this->utilisateur,$this->pass);
53
		} catch (PDOException $e) {
54
 
55
		}
56
    }
57
 
58
    final protected function proteger($chaine) {
59
    	// on ne se connecte que lors du premier appel à une requete
60
    	if($this->connexion == null) {
61
    		$this->connecter();
62
    	}
63
 
64
    	return $this->connexion->quote($chaine);
65
    }
66
 
67
    /**
68
     * Destructeur de classe, se contente de fermer explicitement la connexion
69
     */
70
    final public function __destruct() {
71
    	if($this->connexion != null) {
72
	    	$this->connexion = null ;
73
    	}
74
    }
75
}
76
?>