Subversion Repositories Applications.papyrus

Rev

Rev 2052 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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