'development', 'DEBUG' => true, 'LOG_ON' => false, 'LOG_PATH' => $basePath . 'data/logs/', 'TIMEZONE' => 'PRC', 'REWRITE_ON' =>false, 'REWRITE_RULE' =>array( //'//'=>'//', ), 'DEFAULT_APP' => 'main', 'DEFAULT_CONTROLLER' => 'Default', 'DEFAULT_ACTION' => 'index', 'DB'=>array( 'default'=>array( 'DB_TYPE' => 'MysqlPdo', 'DB_HOST' => 'localhost', 'DB_USER' => 'root', 'DB_PWD' => '', 'DB_PORT' => 3306, 'DB_NAME' => 'cp', 'DB_CHARSET' => 'utf8', 'DB_PREFIX' => '', 'DB_CACHE' => 'DB_CACHE', 'DB_SLAVE' => array(), /* 'DB_SLAVE' => array( array( 'DB_HOST' => '127.0.0.1', ), array( 'DB_HOST' => '127.0.0.2', ), ), */ ), ), 'TPL'=>array( 'TPL_PATH' => $basePath, 'TPL_SUFFIX' => '.html', 'TPL_CACHE' => 'TPL_CACHE', 'TPL_DEPR' => '_', 'TPL_TEMPLATE' => 'default', ), 'CACHE'=>array( 'TPL_CACHE' => array( 'CACHE_TYPE' => 'FileCache', 'CACHE_PATH' => $basePath . 'data/caches/', 'GROUP' => 'tpl', 'HASH_DEEP' => 0, ), 'DB_CACHE' => array( 'CACHE_TYPE' => 'FileCache', 'CACHE_PATH' => $basePath . 'data/caches/', 'GROUP' => 'db', 'HASH_DEEP' => 2, ), ), 'STORAGE'=>array( 'default'=>array('STORAGE_TYPE'=>'File'), ), ); } /** * 加载配置文件 * @param string $file 配置路径 */ static public function loadConfig($file){ if( !file_exists($file) ){ throw new \Exception("Config file '{$file}' not found", 500); } $config = require($file); foreach($config as $k=>$v){ if( is_array($v) ){ if( !isset(self::$config[$k]) ) self::$config[$k] = array(); self::$config[$k] = array_merge((array)self::$config[$k], $config[$k]); }else{ self::$config[$k] = $v; } } } /** * 获取配置项 * @param string $key 配置名 * @return mixed */ static public function get($key=NULL){ if( empty($key) ) return self::$config; $arr = explode('.', $key); switch( count($arr) ){ case 1 : if( isset(self::$config[ $arr[0] ])) { return self::$config[ $arr[0] ]; } break; case 2 : if( isset(self::$config[ $arr[0] ][ $arr[1] ])) { return self::$config[ $arr[0] ][ $arr[1] ]; } break; case 3 : if( isset(self::$config[ $arr[0] ][ $arr[1] ][ $arr[2] ])) { return self::$config[ $arr[0] ][ $arr[1] ][ $arr[2] ]; } break; default: break; } return NULL; } /** * 设置配置项 * @param string $key 配置名 * @param mixed $value 配置值 */ static public function set($key, $value){ $arr = explode('.', $key); switch( count($arr) ){ case 1 : self::$config[ $arr[0] ] = $value; break; case 2 : self::$config[ $arr[0] ][ $arr[1] ] = $value; break; case 3 : self::$config[ $arr[0] ][ $arr[1] ][ $arr[2] ] = $value; break; default: return false; } return true; } }