Subversion Repositories eFlore/Applications.del

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1682 jpm 1
<?php
2
/**
3
 * Le conteneur encapsule les classes servant aux scripts.
4
 * Il gère leur instanciation, ainsi que la récupération des paramètres depuis le fichier de configuration.
5
 *
6
 * @category	DEL
7
 * @package		Bibliotheque
8
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright	Copyright (c) 2014, Tela Botanica (accueil@tela-botanica.org)
10
 * @license		CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
11
 * @license		GNU-GPL http://www.gnu.org/licenses/gpl.html
12
 */
13
//TODO : initialiser tous les objets dans le conteneur
14
class Conteneur {
15
 
16
	protected $parametres = array();
17
	protected $partages = array();
18
 
19
	/**
20
	 * Constructeur de la classe
21
	 * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
22
	 * */
23
	public function __construct(array $parametres = null) {
24
		$this->parametres = is_null($parametres) ? array() : $parametres;
25
	}
26
 
27
	/**
28
	 * Obtenir un paramètre depuis le tableau de paramètres ou depuis le fichier de config
29
	 * @param String $cle le nom du paramètre
30
	 * @return la valeur du paramètre
31
	 */
32
	public function getParametre($cle) {
33
		$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle);
34
		return $valeur;
35
	}
36
 
37
	/**
38
	 * Obtenir un paramètre depuis le tableau de paramètres ou depuis le fichier de config
39
	 * et le transformer en tableau s'il est de la forme : "cle=valeur,cle=valeur,..."
40
	 * @param String $cle le nom du paramètre
41
	 * @return la valeur du paramètre
42
	 */
43
	public function getParametreTableau($cle) {
44
		$tableau = array();
45
		$parametre = $this->getParametre($cle);
46
		if (empty($parametre) === false) {
47
			$tableauPartiel = explode(',', $parametre);
48
			$tableauNettoye = array_map('trim', $tableauPartiel);
49
			foreach ($tableauNettoye as $champ) {
50
				if (strpos($champ, '=') === false) {
51
					$tableau[] = trim($champ);
52
				} else {
53
					list($cle, $val) = explode('=', $champ);
54
					$tableau[trim($cle)] = trim($val);
55
				}
56
			}
57
		}
58
		return $tableau;
59
	}
60
 
61
	/**
62
	 * Enregistrer la valeur d'un paramètre
63
	 * */
64
	public function setParametre($cle, $valeur) {
65
		$this->parametres[$cle] = $valeur;
66
	}
67
 
68
	/**
69
	 * Permet d'obtenir un objet GestionBdd.
70
	 */
71
	public function getBdd() {
72
		if (!isset($this->partages['Bdd'])){
73
			$this->partages['Bdd'] = new Bdd();
74
		}
75
		return $this->partages['Bdd'];
76
	}
77
 
78
	/**
79
	 * Permet d'obtenir un objet RestClient.
80
	 */
81
	public function getRestClient() {
82
		if (!isset($this->partages['RestClient'])) {
83
			$this->partages['RestClient'] = new RestClient();
84
		}
85
		return $this->partages['RestClient'];
86
	}
87
 
88
	/**
89
	 * Permet d'obtenir un objet SquelettePhp.
90
	 */
91
	public function getSquelettePhp() {
92
		if (!isset($this->partages['SquelettePhp'])) {
93
			$this->partages['SquelettePhp'] = new SquelettePhp();
94
		}
95
		return $this->partages['SquelettePhp'];
96
	}
97
}
98
?>