Subversion Repositories Applications.framework

Rev

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

Rev 304 Rev 388
Line 3... Line 3...
3
/**
3
/**
4
 * Config permet de charger automatiquement les fichiers ini du Framework et de l'application.
4
 * Config permet de charger automatiquement les fichiers ini du Framework et de l'application.
5
 * Elle offre l'accès en lecture seule aux paramètres de config.
5
 * Elle offre l'accès en lecture seule aux paramètres de config.
6
 * C'est une Singleton.
6
 * C'est une Singleton.
7
 * Si vous avez besoin de modifier dynamiquement des paramètres de configuration, utiliser le @see Registe, il est fait pour ça.
7
 * Si vous avez besoin de modifier dynamiquement des paramètres de configuration, utiliser le @see Registe, il est fait pour ça.
8
 * 
8
 *
9
 * @category	PHP 5.2
9
 * @category	PHP 5.2
10
 * @package	Framework
10
 * @package	Framework
11
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
11
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
12
 * @copyright	Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
12
 * @copyright	Copyright (c) 2009, Tela Botanica (accueil@tela-botanica.org)
13
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
13
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL-v3
14
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2 
14
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL-v2
15
 * @version	$Id: Config.php 274 2010-12-28 15:37:22Z jpm $
15
 * @version	$Id: Config.php 388 2011-10-31 15:39:05Z jpm $
16
 * @link		/doc/framework/
16
 * @link		/doc/framework/
17
 */
17
 */
Line 18... Line 18...
18
 
18
 
Line 91... Line 91...
91
	private static function parserFichierIni($fichier_ini) {
91
	private static function parserFichierIni($fichier_ini) {
92
		$retour = false;
92
		$retour = false;
93
		if (file_exists($fichier_ini)) {
93
		if (file_exists($fichier_ini)) {
94
			$ini = parse_ini_file($fichier_ini, true);
94
			$ini = parse_ini_file($fichier_ini, true);
95
			$ini = self::analyserTableauIni($ini);
95
			$ini = self::analyserTableauIni($ini);
96
			self::fusionner($ini);
-
 
97
			$retour = true;
96
			$retour = true;
98
		}
97
		}
99
		return $retour;
98
		return $retour;
100
	}
99
	}
Line 168... Line 167...
168
			} else {
167
			} else {
169
				self::evaluerReferences($config, $cle);
168
				self::evaluerReferences($config, $cle);
170
				self::evaluerPhp($config, $cle);
169
				self::evaluerPhp($config, $cle);
171
				self::evaluerCle($config, $cle, $config[$cle]);
170
				self::evaluerCle($config, $cle, $config[$cle]);
172
			}
171
			}
-
 
172
			self::fusionner($config);
173
		}
173
		}
174
		return $config;
174
		return $config;
175
	}
175
	}
Line 176... Line 176...
176
 
176
 
Line 209... Line 209...
209
	 * @param string $cle la clé dont il faut évaluer les références
209
	 * @param string $cle la clé dont il faut évaluer les références
210
	 */
210
	 */
211
	private static function evaluerReferences(&$config, $cle) {
211
	private static function evaluerReferences(&$config, $cle) {
212
		if (preg_match_all('/{ref:([A-Za-z0-9_.-]+)}/', $config[$cle], $correspondances,  PREG_SET_ORDER)) {
212
		if (preg_match_all('/{ref:([A-Za-z0-9_.-]+)}/', $config[$cle], $correspondances,  PREG_SET_ORDER)) {
213
			foreach ($correspondances as $ref) {
213
			foreach ($correspondances as $ref) {
214
				$config[$cle] = str_replace($ref[0], self::getValeur($ref[1], $config), $config[$cle]);
214
				$config[$cle] = str_replace($ref[0], self::getValeur($ref[1], self::$parametres), $config[$cle]);
215
			}
215
			}
216
		}
216
		}
217
	}
217
	}
Line 218... Line 218...
218
 
218
 
Line 254... Line 254...
254
	 */
254
	 */
255
	public static function existe($param) {
255
	public static function existe($param) {
256
		self::verifierCreationInstance();
256
		self::verifierCreationInstance();
257
		return self::existeValeur($param, self::$parametres);
257
		return self::existeValeur($param, self::$parametres);
258
	}
258
	}
259
	
259
 
260
	/**
260
	/**
261
	 * Vérifie que tous les paramêtres de config nécessaires au fonctionnement d'une classe existe dans les fichiers
261
	 * Vérifie que tous les paramêtres de config nécessaires au fonctionnement d'une classe existe dans les fichiers
262
	 * de configurations.
262
	 * de configurations.
263
	 * L'utilisation de cette méthode depuis la classe Config évite de faire appel à une classe supplémentaire.
263
	 * L'utilisation de cette méthode depuis la classe Config évite de faire appel à une classe supplémentaire.
264
	 * 
264
	 *
265
	 * @param array $parametres tableau des noms des paramètres de la config à verifier.
265
	 * @param array $parametres tableau des noms des paramètres de la config à verifier.
266
	 * @return boolean true si tous les paramétres sont présents sinon false.
266
	 * @return boolean true si tous les paramétres sont présents sinon false.
267
	 */
267
	 */
268
	public static function verifierPresenceParametres(Array $parametres) {
268
	public static function verifierPresenceParametres(Array $parametres) {
269
		$ok = true;
269
		$ok = true;