00001 <?php
00027 final class Config
00028 {
00034 protected static $_vars = array();
00041 public static function get($var)
00042 {
00043 $namespaces = explode('.', $var);
00044 switch(count($namespaces)) {
00045 case 3:
00046 if(isset(self::$_vars[$namespaces[0]][$namespaces[1]][$namespaces[2]])) {
00047 return self::$_vars[$namespaces[0]][$namespaces[1]][$namespaces[2]];
00048 }
00049 break;
00050 case 2:
00051 if(isset(self::$_vars[$namespaces[0]][$namespaces[1]])) {
00052 return self::$_vars[$namespaces[0]][$namespaces[1]];
00053 }
00054 break;
00055 case 1:
00056 if(isset(self::$_vars[$namespaces[0]])) {
00057 return self::$_vars[$namespaces[0]];
00058 }
00059 break;
00060 }
00061 return null;
00062 }
00069 public static function set($var, $value)
00070 {
00071 $namespaces = explode('.', $var);
00072 switch(count($namespaces)) {
00073 case 3:
00074 self::$_vars[$namespaces[0]][$namespaces[1]][$namespaces[2]] = $value;
00075 break;
00076 case 2:
00077 self::$_vars[$namespaces[0]][$namespaces[1]] = $value;
00078 break;
00079 case 1:
00080 self::$_vars[$namespaces[0]] = $value;
00081 break;
00082 }
00083 }
00091 public static function & read($file, $force=false)
00092 {
00093 $namespace = basename($file, '.ini');
00094
00095 if(isset(self::$_vars[$namespace]) && !$force) {
00096 return self::$_vars[$namespace];
00097 }
00098
00099 if(!file_exists(APP_PATH."config/$file")){
00100 throw new KumbiaException("No existe el archivo de configuración $file");
00101 }
00102
00103 self::$_vars[$namespace] = parse_ini_file(APP_PATH . "config/$file", true);
00104 return self::$_vars[$namespace];
00105 }
00106 }