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 }