Subversion Repositories Applications.papyrus

Rev

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

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