Subversion Repositories eFlore/Applications.cel

Rev

Rev 1204 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1204 Rev 1222
1
<?php
1
<?php
2
/**
2
/**
3
 * Le conteneur encapsule les classes et les paramètres de config.
3
 * Le conteneur encapsule les classes et les paramètres de config.
4
 * Il gère leur instanciation, ainsi que la récupération des paramètres depuis les fichiers de configuration.
4
 * Il gère leur instanciation, ainsi que la récupération des paramètres depuis les fichiers de configuration.
5
 *
5
 *
6
 * @category php 5.2
6
 * @category php 5.2
7
 * @package cel
7
 * @package cel
8
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
8
 * @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
9
 * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
9
 * @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
10
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
11
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
12
 * @version	$Id$
12
 * @version	$Id$
13
 */
13
 */
14
class Conteneur {
14
class Conteneur {
15
	protected $parametres = array();
15
	protected $parametres = array();
16
	protected $partages = array();
16
	protected $partages = array();
17
 
17
 
18
	public function __construct(array $parametres = null) {
18
	public function __construct(array $parametres = null) {
19
		$this->parametres = is_null($parametres) ? array() : $parametres;
19
		$this->parametres = is_null($parametres) ? array() : $parametres;
20
	}
20
	}
21
 
21
 
22
	public function getParametre($cle) {
22
	public function getParametre($cle) {
23
		$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : null;
23
		$valeur = isset($this->parametres[$cle]) ? $this->parametres[$cle] : null;
-
 
24
		if (is_null($valeur) && $this->etreParametreASection($cle)) {
-
 
25
			$valeur = $this->getParametreAvecSection($cle);
-
 
26
		}
24
		return $valeur;
27
		return $valeur;
-
 
28
	}
-
 
29
 
-
 
30
	private function etreParametreASection($cle) {
-
 
31
		return strpos($cle, '.') ? true : false;
-
 
32
	}
-
 
33
 
-
 
34
	private function getParametreAvecSection($cle) {
-
 
35
		$cleComposee = explode('.', $cle);
-
 
36
		$valeur = $this->parametres;
-
 
37
		foreach ($cleComposee as $cleCourrante) {
-
 
38
			$valeur = isset($valeur[$cleCourrante]) ? $valeur[$cleCourrante] : null;
-
 
39
		}
-
 
40
		return $valeur;
25
	}
41
	}
26
 
42
 
27
	public function getParametreTableau($cle) {
43
	public function getParametreTableau($cle) {
28
		$tableau = array();
44
		$tableau = array();
29
		$parametre = $this->getParametre($cle);
45
		$parametre = $this->getParametre($cle);
30
		if (empty($parametre) === false) {
46
		if (empty($parametre) === false) {
31
			$tableauPartiel = explode(',', $parametre);
47
			$tableauPartiel = explode(',', $parametre);
32
			$tableauPartiel = array_map('trim', $tableauPartiel);
48
			$tableauPartiel = array_map('trim', $tableauPartiel);
33
			foreach ($tableauPartiel as $champ) {
49
			foreach ($tableauPartiel as $champ) {
34
				if (strpos($champ, '=') === false) {
50
				if (strpos($champ, '=') === false) {
35
					$tableau[] = trim($champ);
51
					$tableau[] = trim($champ);
36
				} else {
52
				} else {
37
					list($cle, $val) = explode('=', $champ);
53
					list($cle, $val) = explode('=', $champ);
38
					$tableau[trim($cle)] = trim($val);
54
					$tableau[trim($cle)] = trim($val);
39
				}
55
				}
40
			}
56
			}
41
		}
57
		}
42
		return $tableau;
58
		return $tableau;
43
	}
59
	}
44
 
60
 
45
	public function setParametre($cle, $valeur) {
61
	public function setParametre($cle, $valeur) {
46
		$this->parametres[$cle] = $valeur;
62
		$this->parametres[$cle] = $valeur;
47
	}
63
	}
48
 
64
 
49
	public function getBdd() {
65
	public function getBdd() {
50
		if (!isset($this->partages['Bdd'])){
66
		if (!isset($this->partages['Bdd'])){
51
			$this->partages['Bdd'] = new Bdd($this->getParametre('database_cel'));
67
			$this->partages['Bdd'] = new Bdd($this->getParametre('database_cel'));
52
		}
68
		}
53
		return $this->partages['Bdd'];
69
		return $this->partages['Bdd'];
-
 
70
	}
-
 
71
 
-
 
72
	public function getScript() {
-
 
73
		if (!isset($this->partages['Script'])){
-
 
74
			$this->partages['Script'] = new Script();
-
 
75
		}
-
 
76
		return $this->partages['Script'];
54
	}
77
	}
55
}
78
}
56
?>
79
?>