Subversion Repositories eFlore/Applications.del

Rev

Rev 1612 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1612 jpm 1
<?php
723 gduche 2
/**
3
 * Gestion BDD permet l'appel à l'objet BDD du framework,
1612 jpm 4
 * gère les noms de table en fonction du schéma de la table
723 gduche 5
 * ainsi que la limite SQL en fonction de l'objet Navigation
6
 
7
 * @category php 5.2
8
 * @package del
9
 * @author Grégoire Duché <gregoire@tela-botanica.org>
10
 * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
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
13
 * @version	$Id: Bdd.php 403 2012-02-22 14:35:20Z gduche $
14
 */
15
class GestionBdd {
1612 jpm 16
 
723 gduche 17
	private $bdd;
18
	private $schemaBdd;
19
	private $navigation;
1612 jpm 20
 
723 gduche 21
	/**
22
	 * Constructeur de la classe GestionBdd
1612 jpm 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
25
	 * @param Bdd $bdd (optionnel) un objet Bdd pour la connection à la base de données
723 gduche 26
	 * */
27
	public function __construct($navigation, $schemaBdd = null, $bdd = null) {
28
		if ($navigation == null) {
29
			$message = 'L\'objet Navigation est nécessaire pour configurer l\'objet GestionBdd';
30
			$code = RestServeur::HTTP_CODE_ERREUR;
31
			throw new Exception($message, $code);
32
		} else {
33
			$this->navigation = $navigation;
34
			$this->schemaBdd = $schemaBdd;
35
			if ($bdd == null) {
36
				$this->bdd = new Bdd();
37
			} else {
38
				$this->bdd = $bdd;
39
			}
40
		}
41
	}
1612 jpm 42
 
723 gduche 43
	/**
44
	* Créer la chaine de limite de requête en fonction des paramètres donnés
45
	* */
46
	public function getLimitSql() {
47
		return ' LIMIT '.$this->navigation->getDepart().', '.$this->navigation->getLimite();
48
	}
1612 jpm 49
 
723 gduche 50
	/**
51
	 * Récupérer l'objet Bdd ou le créer s'il n'existe pas
52
	 * @return Bdd l'objet Bdd
53
	 * */
54
	public function getBdd() {
55
		if (!isset($this->bdd)){
56
			$this->bdd = new Bdd();
57
		}
58
		return $this->bdd;
59
	}
60
}
61
?>