| 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;
|