Subversion Repositories eFlore/Projets.eflore-projets

Rev

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

Rev Author Line No. Line
425 jpm 1
<?php
1068 jpm 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, et
5
 * de la ligne de commande.
6
 *
7
 * @category	eFlore
8
 * @package		Scripts
9
 * @subpackage	Bibliotheque
10
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @copyright	Copyright (c) 2014, Tela Botanica (accueil@tela-botanica.org)
12
 * @license		CeCILL v2 http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt
13
 * @license		GNU-GPL http://www.gnu.org/licenses/gpl.html
14
 */
15
//TODO : initialiser tous les objets dans le conteneur
425 jpm 16
class Conteneur {
17
	protected $parametres = array();
18
	protected $partages = array();
19
 
20
	public function __construct(array $parametres = null) {
21
		$this->parametres = is_null($parametres) ? array() : $parametres;
22
	}
23
 
24
	public function getParametre($cle) {
25
		$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : Config::get($cle);
26
		return $valeur;
27
	}
28
 
1068 jpm 29
	/**
30
	 * Obtenir un paramètre depuis le tableau de paramètres ou depuis le fichier de config
31
	 * et le transformer en tableau s'il est de la forme : "cle=valeur,cle=valeur,..."
32
	 * @param String $cle le nom du paramètre
33
	 * @return la valeur du paramètre
34
	 */
425 jpm 35
	public function getParametreTableau($cle) {
36
		$tableau = array();
37
		$parametre = $this->getParametre($cle);
38
		if (empty($parametre) === false) {
39
			$tableauPartiel = explode(',', $parametre);
40
			foreach ($tableauPartiel as $champ) {
41
				if (strpos($champ, '=') === false) {
42
					$tableau[] = trim($champ);
43
				} else {
44
					list($cle, $val) = explode('=', $champ);
45
					$tableau[trim($cle)] = trim($val);
46
				}
47
			}
48
		}
49
		return $tableau;
50
	}
51
 
52
	public function setParametre($cle, $valeur) {
53
		$this->parametres[$cle] = $valeur;
54
	}
55
 
56
	public function getOutils() {
57
		if (!isset($this->partages['Outils'])){
58
			$this->partages['Outils'] = new Outils();
59
		}
60
		return $this->partages['Outils'];
61
	}
475 jpm 62
 
441 mathilde 63
	public function getEfloreCommun() {
64
		if (!isset($this->partages['EfloreCommun'])){
478 jpm 65
			$this->partages['EfloreCommun'] = new EfloreCommun($this);
441 mathilde 66
		}
67
		return $this->partages['EfloreCommun'];
68
	}
425 jpm 69
 
1068 jpm 70
	public function getMessages() {
71
		if (!isset($this->partages['Messages'])){
72
			$this->partages['Messages'] = new Messages($this->getParametre('v'));
73
		}
74
		return $this->partages['Messages'];
425 jpm 75
	}
475 jpm 76
 
485 jpm 77
	public function getGenerateurNomSciHtml() {
1068 jpm 78
		if (!isset($this->partages['GenerateurNomSciHtml'])){
79
			$this->partages['GenerateurNomSciHtml'] = new GenerateurNomSciHtml();
80
		}
485 jpm 81
		return $this->partages['GenerateurNomSciHtml'];
82
	}
83
 
1068 jpm 84
	public function getRestClient() {
85
		if (!isset($this->partages['RestClient'])){
86
			$this->partages['RestClient'] = new RestClient();
87
		}
88
		return $this->partages['RestClient'];
475 jpm 89
	}
478 jpm 90
 
1068 jpm 91
	public function getBdd() {
92
		if (!isset($this->partages['Bdd'])){
93
			$this->partages['Bdd'] = new Bdd();
94
		}
95
		return $this->partages['Bdd'];
478 jpm 96
	}
1068 jpm 97
}