Subversion Repositories eFlore/Applications.del

Rev

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

Rev 1793 Rev 1794
Line 1... Line 1...
1
<?php
1
<?php
-
 
2
// declare(encoding='UTF-8');
2
/**
3
/**
3
 * Le conteneur encapsule l'instanciation des classes ainsi que la récupération des paramètres depuis l'url ou
4
 * Le conteneur encapsule l'instanciation des classes ainsi que la récupération des paramètres depuis l'url ou
4
 * les fichiers de configuration
5
 * les fichiers de configuration
5
 *
6
 *
6
 * @category DEL
7
 * @category DEL
Line 16... Line 17...
16
//TODO : initialiser tous les objets dans le conteneur
17
//TODO : initialiser tous les objets dans le conteneur
17
//TODO : créer un tableau de partage
18
//TODO : créer un tableau de partage
18
class Conteneur {
19
class Conteneur {
Line 19... Line 20...
19
 
20
 
20
	protected $parametres;
21
	protected $parametres;
21
	protected $navigation;
-
 
22
	protected $masque;
-
 
23
	protected $gestionBdd;
-
 
24
	protected $sansLimite = false;
22
	protected $parametresUrl;
Line 25... Line 23...
25
	protected $partages = array();
23
	protected $partages = array();
26
 
24
 
27
	/**
25
	/**
28
	 * Constructeur de la classe
26
	 * Constructeur de la classe
29
	 * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
27
	 * @param Array $parametres (optionnel) les paramètres additionnels à ajouter à ceux des fichiers de config
30
	 * */
28
	 * */
-
 
29
	public function __construct(array $parametres = null) {
-
 
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.
-
 
32
		// Ce conteneur conscidère que les paramètres fournis à son constructeur correspondent aux paramètres de l'URL (GET ou POST)...
31
	public function __construct(array $parametres = null) {
33
		// Ce n'est pas vraiment générique.
Line 32... Line 34...
32
		$this->parametres = is_null($parametres) ? array() : $parametres;
34
		$this->parametresUrl = $this->parametres;
33
	}
35
	}
34
 
36
 
Line 71... Line 73...
71
	public function setParametre($cle, $valeur) {
73
	public function setParametre($cle, $valeur) {
72
		$this->parametres[$cle] = $valeur;
74
		$this->parametres[$cle] = $valeur;
73
	}
75
	}
Line 74... Line 76...
74
 
76
 
75
	//--------------------------------------------------------------------------------------------------------
77
	//--------------------------------------------------------------------------------------------------------
76
	// Ci-dessous méthode à revoir !
78
	// TODO : Supprimer le chargement de configuration présent dans des fichiers séparés.
77
	/**
79
	/**
-
 
80
	 * Charger la configuration depuis un fichier .ini.
78
	 * Charger la configuration depuis le fichier
81
	 *
79
	 * @param String $chemin le chemin relatif depuis le dossier configurations du fichier
82
	 * @param String $fichier le nom du fichier de configuration
80
	 * */
83
	 * */
81
	public function chargerConfiguration($chemin) {
84
	public function chargerConfiguration($fichier) {
82
		$cheminConfigurations = Config::get('chemin_configurations');
85
		$cheminConfigurations = Config::get('chemin_configurations');
83
		if ($cheminConfigurations == null || $cheminConfigurations == '') {
86
		if ($cheminConfigurations == null || $cheminConfigurations == '') {
84
			$message = 'Le chemin vers le répertoire Configurations n\'est pas renseigné';
87
			$message = "Le parametre de configuration 'chemin_configurations' n'est pas défini.";
85
			$code = RestServeur::HTTP_CODE_ERREUR;
88
			$code = RestServeur::HTTP_CODE_ERREUR;
86
			throw new Exception($message, $code);
89
			throw new Exception($message, $code);
87
		}
-
 
Line 88... Line 90...
88
		Config::charger($cheminConfigurations.DS.$chemin);
90
		}
89
 
91
 
90
		if ($this->masque = new Masque(Config::get('masques_possibles'), $this->parametres)) {
-
 
91
			$this->masque->chargerMasque();
92
		$cheminConfigService = $cheminConfigurations.DS.$fichier;
92
		} else {
93
		if (file_exists($cheminConfigService) === false) {
93
			$message = 'Erreur lors de la création du Masque';
94
			$message = "Le fichier de configuration du service est introuvable : $cheminConfigService ";
94
			$code = RestServeur::HTTP_CODE_ERREUR;
95
			$code = RestServeur::HTTP_CODE_ERREUR;
Line 95... Line -...
95
			throw new Exception($message, $code);
-
 
96
		}
96
			throw new Exception($message, $code);
97
 
-
 
98
		if ($this->navigation = new Navigation($this->parametres)) {
-
 
99
			$this->navigation->chargerUrl();
-
 
100
		} else {
-
 
101
			$message = 'Erreur lors de la création de la Navigation';
-
 
102
			$code = RestServeur::HTTP_CODE_ERREUR;
-
 
103
			throw new Exception($message, $code);
-
 
104
		}
-
 
105
 
-
 
106
		$this->gestionBdd = new GestionBdd($this->navigation, Config::get('schemaBdd'));
-
 
107
	}
-
 
108
 
-
 
109
	/**
-
 
110
	 * Changer la valeur de sans limite pour ne pas l'afficher dans l'entete
-
 
111
	 * */
-
 
112
	public function setSansLimite() {
-
 
113
		$this->sansLimite = true;
-
 
114
	}
-
 
115
 
-
 
116
	/**
-
 
117
	 * Récupérer l'objet Navigation
-
 
118
	 * */
-
 
119
	public function getNavigation() {
-
 
120
		return $this->navigation;
-
 
121
	}
-
 
122
 
-
 
123
	/**
-
 
124
	 * Récupérer l'objet Masque
-
 
125
	 * */
97
		}
Line 126... Line -...
126
	public function getMasque() {
-
 
127
		return $this->masque;
-
 
128
	}
-
 
129
 
-
 
130
	/**
-
 
131
	* Créer l'entête en fonction des paramètres donnés
-
 
132
	* */
-
 
133
	public function getEntete() {
-
 
134
		$entete = array();
-
 
135
		$entete['masque'] = $this->masque->getChaineMasque();
-
 
136
 
-
 
137
		$entete['total'] = $this->navigation->getTotal();
-
 
138
		if ($this->sansLimite == false) {
-
 
139
			$entete['depart'] = $this->navigation->getDepart();
-
 
140
			$entete['limite'] = $this->navigation->getLimite();
-
 
141
 
-
 
142
			$lienPrecedent = $this->navigation->recupererHrefPrecedent();
-
 
143
 
-
 
144
			if ($lienPrecedent != null) {
-
 
145
				$entete['href.precedent'] = $lienPrecedent;
-
 
146
			}
-
 
147
 
-
 
148
			$lienSuivant = $this->navigation->recupererHrefSuivant();
-
 
149
			if ($lienSuivant) {
-
 
150
				$entete['href.suivant'] = $lienSuivant;
-
 
151
			}
-
 
152
		}
-
 
153
 
-
 
154
		return $entete;
-
 
155
	}
98
 
156
	//--------------------------------------------------------------------------------------------------------
99
		Config::charger($cheminConfigService);
157
	// Ci-dessous méthode ok !
100
	}
158
 
101
 
159
	public function getBdd() {
102
	public function getBdd() {
Line 168... Line 111...
168
			$this->partages['restClient'] = new RestClient();
111
			$this->partages['restClient'] = new RestClient();
169
		}
112
		}
170
		return $this->partages['restClient'];
113
		return $this->partages['restClient'];
171
	}
114
	}
Line -... Line 115...
-
 
115
 
-
 
116
	public function getUrl($base) {
-
 
117
		return new Url($base);
-
 
118
	}
172
 
119
 
173
	public function getControleAcces() {
120
	public function getControleAcces() {
174
		if (!isset($this->partages['controleAcces'])) {
121
		if (!isset($this->partages['controleAcces'])) {
175
			$this->partages['controleAcces'] = new ControleAcces($this);
122
			$this->partages['controleAcces'] = new ControleAcces($this);
176
		}
123
		}
177
		return $this->partages['controleAcces'];
124
		return $this->partages['controleAcces'];
178
	}
-
 
179
}
-
 
180
?>
125
	}
-
 
126
 
-
 
127
	public function getNavigation() {
-
 
128
		if (!isset($this->partages['navigation'])) {
-
 
129
			$this->partages['navigation'] = new Navigation($this, $this->parametresUrl);
-
 
130
		}
-
 
131
		return $this->partages['navigation'];
-
 
132
	}
-
 
133
 
-
 
134
	public function getMasque() {
-
 
135
		if (!isset($this->partages['masque'])) {
-
 
136
			$this->partages['masque'] = new Masque($this->getparametre('masques_possibles'), $this->parametresUrl);
-
 
137
		}
-
 
138
		return $this->partages['masque'];
-
 
139
	}
-
 
140
}
181
141