*/ class LSconfig { // Configuration Data private static $data=array(); /** * Lancement de LSconfig * * Chargement initiale des données de configuration à partir des fichiers en * config.*.php du dossier LS_CONF_DIR * * @retval boolean True si tout s'est bien passé, False sinon **/ public static function start() { $files=array('config.inc.php','config.LSaddons.php'); foreach($files as $file) { if (!LSsession::includeFile(LS_CONF_DIR.'/'.$file)) { return; } } if (is_array($GLOBALS['LSconfig'])) { self :: $data = $GLOBALS['LSconfig']; self :: $data['LSaddons'] = $GLOBALS['LSaddons']; return true; } return; } /** * Récupération d'une valeur * * @param[in] $var string Le nom de valeur à récupérer (Exemple : cacheSearch) * * @retval mixed La valeur de la variable, ou false si son nom n'est parsable **/ public static function get($var, $default=null, $cast=null, $data=null) { $vars = explode('.', $var); $value = $default; if (is_array($vars)) { $value = (is_array($data)?$data:self :: $data); foreach ($vars as $v) { if (!is_array($value) || !isset($value[$v])) { $value = $default; break; } $value = $value[$v]; } } switch($cast) { case 'bool': return boolval($value); case 'int': return intval($value); case 'float': return floatval($value); case 'string': return strval($value); default: return $value; } } /** * Définition d'une valeur * * @param[in] $var string Le nom de valeur à définir * @param[in] $val mixed La valeur de la variable * * @retval boolean True si tout s'est bien passé, False sinon **/ public static function set($var,$val) { $vars=explode('.',$var); if(is_array($vars)) { $code='self :: $data'; foreach ($vars as $v) { $code.='["'.$v.'"]'; } $code.='=$val;'; return (eval($code)===NULL); } return; } }