Subversion Repositories eFlore/Applications.del

Rev

Rev 1794 | Rev 1806 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1794 Rev 1795
Line 17... Line 17...
17
//TODO : initialiser tous les objets dans le conteneur
17
//TODO : initialiser tous les objets dans le conteneur
18
//TODO : créer un tableau de partage
18
//TODO : créer un tableau de partage
19
class Conteneur {
19
class Conteneur {
Line 20... Line 20...
20
 
20
 
21
	protected $parametres;
-
 
22
	protected $parametresUrl;
21
	protected $parametres;
Line -... Line 22...
-
 
22
	protected $partages = array();
-
 
23
 
-
 
24
	protected $parametresUrl;
23
	protected $partages = array();
25
	protected $serviceNom;
24
 
26
 
25
	/**
27
	/**
26
	 * Constructeur de la classe
28
	 * Constructeur de la classe
27
	 * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
29
	 * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
28
	 * */
30
	 * */
-
 
31
	public function __construct(array $parametres = null) {
29
	public function __construct(array $parametres = null) {
32
		$this->parametres = is_null($parametres) ? array() : $parametres;
30
		$this->parametres = is_null($parametres) ? array() : $parametres;
-
 
31
		// TODO [2014-05-13 - JPM]: améliorer la gestion des paramètres d'URL fournis au conteneur.
33
 
32
		// Ce conteneur conscidère que les paramètres fournis à son constructeur correspondent aux paramètres de l'URL (GET ou POST)...
34
		// Récupération du contexte courrant et configuration du conteneur
-
 
35
		$contexte = $this->getContexte();
33
		// Ce n'est pas vraiment générique.
36
		$this->parametresUrl = $contexte->getQS();
Line 34... Line 37...
34
		$this->parametresUrl = $this->parametres;
37
		$this->serviceNom = $contexte->getRessource(1);
35
	}
38
	}
36
 
39
 
Line 87... Line 90...
87
			$message = "Le parametre de configuration 'chemin_configurations' n'est pas défini.";
90
			$message = "Le parametre de configuration 'chemin_configurations' n'est pas défini.";
88
			$code = RestServeur::HTTP_CODE_ERREUR;
91
			$code = RestServeur::HTTP_CODE_ERREUR;
89
			throw new Exception($message, $code);
92
			throw new Exception($message, $code);
90
		}
93
		}
Line 91... Line 94...
91
 
94
 
92
		$cheminConfigService = $cheminConfigurations.DS.$fichier;
95
		$cheminConfigService = $cheminConfigurations.$fichier;
-
 
96
		if (file_exists($cheminConfigService) === false) {
93
		if (file_exists($cheminConfigService) === false) {
97
			$nomClasse = get_class($this);
94
			$message = "Le fichier de configuration du service est introuvable : $cheminConfigService ";
98
			$message = "Classe $nomClasse : le fichier de configuration du service est introuvable : $cheminConfigService ";
95
			$code = RestServeur::HTTP_CODE_ERREUR;
99
			$code = RestServeur::HTTP_CODE_ERREUR;
96
			throw new Exception($message, $code);
100
			throw new Exception($message, $code);
Line 97... Line 101...
97
		}
101
		}
Line 115... Line 119...
115
 
119
 
116
	public function getUrl($base) {
120
	public function getUrl($base) {
117
		return new Url($base);
121
		return new Url($base);
Line -... Line 122...
-
 
122
	}
-
 
123
 
-
 
124
	public function getUrlService() {
-
 
125
		return $this->getUrl($this->getParametre($this->serviceNom.'.url_service'));
118
	}
126
	}
119
 
127
 
120
	public function getControleAcces() {
128
	public function getControleAcces() {
121
		if (!isset($this->partages['controleAcces'])) {
129
		if (!isset($this->partages['controleAcces'])) {
122
			$this->partages['controleAcces'] = new ControleAcces($this);
130
			$this->partages['controleAcces'] = new ControleAcces($this);
Line 131... Line 139...
131
		return $this->partages['navigation'];
139
		return $this->partages['navigation'];
132
	}
140
	}
Line 133... Line 141...
133
 
141
 
134
	public function getMasque() {
142
	public function getMasque() {
135
		if (!isset($this->partages['masque'])) {
143
		if (!isset($this->partages['masque'])) {
136
			$this->partages['masque'] = new Masque($this->getparametre('masques_possibles'), $this->parametresUrl);
144
			$this->partages['masque'] = new Masque($this->getparametre($this->serviceNom.'.masques_possibles'), $this->parametresUrl);
137
		}
145
		}
138
		return $this->partages['masque'];
146
		return $this->partages['masque'];
-
 
147
	}
-
 
148
 
-
 
149
	public function getContexte() {
-
 
150
		if (!isset($this->partages['contexte'])) {
-
 
151
			$this->partages['contexte'] = new Contexte($this, $_SERVER, $_GET, $_POST, $_SESSION, $_COOKIE);
-
 
152
		}
-
 
153
		return $this->partages['contexte'];
-
 
154
	}
-
 
155
 
-
 
156
	public function getUtilisateur() {
-
 
157
		if (!isset($this->partages['utilisateur'])) {
-
 
158
			$this->partages['utilisateur'] = new GestionUtilisateur($this);
-
 
159
		}
-
 
160
		return $this->partages['utilisateur'];
139
	}
161
	}
140
}
162
}