Subversion Repositories eFlore/Applications.del

Rev

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

Rev 723 Rev 1612
Line 1... Line 1...
1
<?php 
1
<?php
2
/**
2
/**
3
 * Gestion BDD permet l'appel à l'objet BDD du framework,
3
 * Gestion BDD permet l'appel à l'objet BDD du framework,
4
 * gère les noms de table en fonction du schéma de la table 
4
 * gère les noms de table en fonction du schéma de la table
5
 * ainsi que la limite SQL en fonction de l'objet Navigation
5
 * ainsi que la limite SQL en fonction de l'objet Navigation
Line 6... Line 6...
6
 
6
 
7
 * @category php 5.2
7
 * @category php 5.2
8
 * @package del
8
 * @package del
Line 11... Line 11...
11
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
12
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
13
 * @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
13
 * @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
14
 */
14
 */
15
class GestionBdd {
15
class GestionBdd {
16
	
16
 
17
	private $bdd;
17
	private $bdd;
18
	private $schemaBdd;
18
	private $schemaBdd;
19
	private $navigation;
19
	private $navigation;
20
	
20
 
21
	/**
21
	/**
22
	 * Constructeur de la classe GestionBdd
22
	 * Constructeur de la classe GestionBdd
23
	 * @param Navigation $navigation l'objet navigation issu du Conteneur, et contenant les informations de départ et limite 
23
	 * @param Navigation $navigation l'objet navigation issu du Conteneur, et contenant les informations de départ et limite
24
	 * @param String $schemaBdd (optionnel) le schéma de la base issu du fichier de config 
24
	 * @param String $schemaBdd (optionnel) le schéma de la base issu du fichier de config
25
	 * @param Bdd $bdd (optionnel) un objet Bdd pour la connection à la base de données 
25
	 * @param Bdd $bdd (optionnel) un objet Bdd pour la connection à la base de données
26
	 * */
26
	 * */
27
	public function __construct($navigation, $schemaBdd = null, $bdd = null) {
27
	public function __construct($navigation, $schemaBdd = null, $bdd = null) {
28
		if ($navigation == null) {
28
		if ($navigation == null) {
29
			$message = 'L\'objet Navigation est nécessaire pour configurer l\'objet GestionBdd';
29
			$message = 'L\'objet Navigation est nécessaire pour configurer l\'objet GestionBdd';
30
			$code = RestServeur::HTTP_CODE_ERREUR;
30
			$code = RestServeur::HTTP_CODE_ERREUR;
Line 37... Line 37...
37
			} else {
37
			} else {
38
				$this->bdd = $bdd;
38
				$this->bdd = $bdd;
39
			}
39
			}
40
		}
40
		}
41
	}
41
	}
42
	
42
 
43
	/**
43
	/**
44
	* Créer la chaine de limite de requête en fonction des paramètres donnés
44
	* Créer la chaine de limite de requête en fonction des paramètres donnés
45
	* */
45
	* */
46
	public function getLimitSql() {
46
	public function getLimitSql() {
47
		return ' LIMIT '.$this->navigation->getDepart().', '.$this->navigation->getLimite();
47
		return ' LIMIT '.$this->navigation->getDepart().', '.$this->navigation->getLimite();
48
	}
48
	}
49
	
49
 
50
	/**
50
	/**
51
	 * Récupérer l'objet Bdd ou le créer s'il n'existe pas
51
	 * Récupérer l'objet Bdd ou le créer s'il n'existe pas
52
	 * @return Bdd l'objet Bdd
52
	 * @return Bdd l'objet Bdd
53
	 * */
53
	 * */
54
	public function getBdd() {
54
	public function getBdd() {
55
		if (!isset($this->bdd)){
55
		if (!isset($this->bdd)){
56
			$this->bdd = new Bdd();
56
			$this->bdd = new Bdd();
57
		}
57
		}
58
		return $this->bdd;
58
		return $this->bdd;
59
	}
59
	}
60
	
-
 
61
	/** Formater un nom de table avec le schéma de la base de données, s'il existe
-
 
62
	 *  @param String $table le nom de la table
-
 
63
	 *  @param String $as (optionnel) l'alias de la table 
-
 
64
	 *  @return String la chaine de caractère sous la forme "schema.nomtable as nt"
-
 
65
	 * */
-
 
66
	public function formaterTable($table, $as = null) {
-
 
67
		$chaineTable = $table;
-
 
68
		if ($this->schemaBdd != null) {
-
 
69
			$chaineTable = $this->schemaBdd.'.'.$table;
-
 
70
		}
-
 
71
		if ($as != null && $as != '') {
-
 
72
			$chaineTable .= ' as '.$as;
-
 
73
		}
-
 
74
		return $chaineTable.' ';
-
 
75
	}
-
 
76
	
-
 
77
	/** Formater des noms de table avec le schéma de la base de données, s'il existe
-
 
78
	*  @param Array $tables un tableau à deux dimensions contenant le nom et l'alias de la table 
-
 
79
	*	Ex : Array("nom" => "as", "table" => "") 
-
 
80
	*  @return String la chaine de caractère sous la forme "schema.nomtable as nt, schema.nomtable2 as nt2"
-
 
81
	* */
-
 
82
	public function formaterTables($tables) {
-
 
83
		$tablesFormatees = array();
-
 
84
		foreach ($tables as $nom => $as) {
-
 
85
			$tablesFormatees[] = $this->formaterTable($nom, $as);
-
 
86
		}
-
 
87
		
-
 
88
		return implode(',', $tablesFormatees);
-
 
89
	}
-
 
90
}
60
}
91
?>
61
?>
92
62