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);
1693 jpm 48
			foreach ($tableauPartiel as $champ) {
1682 jpm 49
				if (strpos($champ, '=') === false) {
50
					$tableau[] = trim($champ);
51
				} else {
52
					list($cle, $val) = explode('=', $champ);
53
					$tableau[trim($cle)] = trim($val);
54
				}
55
			}
56
		}
57
		return $tableau;
58
	}
59
 
60
	/**
61
	 * Enregistrer la valeur d'un paramètre
62
	 * */
63
	public function setParametre($cle, $valeur) {
64
		$this->parametres[$cle] = $valeur;
65
	}
66
 
67
	/**
68
	 * Permet d'obtenir un objet GestionBdd.
69
	 */
70
	public function getBdd() {
71
		if (!isset($this->partages['Bdd'])){
72
			$this->partages['Bdd'] = new Bdd();
73
		}
74
		return $this->partages['Bdd'];
75
	}
76
 
77
	/**
78
	 * Permet d'obtenir un objet RestClient.
79
	 */
80
	public function getRestClient() {
81
		if (!isset($this->partages['RestClient'])) {
82
			$this->partages['RestClient'] = new RestClient();
83
		}
84
		return $this->partages['RestClient'];
85
	}
86
 
87
	/**
88
	 * Permet d'obtenir un objet SquelettePhp.
89
	 */
90
	public function getSquelettePhp() {
91
		if (!isset($this->partages['SquelettePhp'])) {
92
			$this->partages['SquelettePhp'] = new SquelettePhp();
93
		}
94
		return $this->partages['SquelettePhp'];
95
	}
1737 jpm 96
 
97
	/**
98
	 * Permet d'obtenir un objet RestClient.
99
	 */
100
	public function getMessagerie() {
101
		if (!isset($this->partages['Messagerie'])) {
102
			$this->partages['Messagerie'] = new Messagerie($this);
103
		}
104
		return $this->partages['Messagerie'];
105
	}
106
}