概述
//框架类Config.php类配置文件. 2个私有属性和7个方法
/**
* 配置类
*/
class Config {
coding;
}
//2个静态私有属性变量
//配置参数 初始值默认为空数组 提供内部访问:self::静态成员 参数只接受数组类型值
private static $config = [];
//配置参数作用域 提供内部访问:self::静态成员 参数只接受字符串类型的值
private static $range = 'sys';
//7个方法
/**
* 设定配置参数的作用域 公有静态方法 外部访问: Config::静态成员
* @param string $range 参数作用域
*/
public static function range($range) {
//内部静态成员获取值
self::$range = $range;
if(!isset(self::$config[$range])) {
self::$config[$range] = [];
}
}
/**
* 解析配置文件或内容 公有静态方法 外部访问:
* @param string $config 配置文件路径或内容
* @param string $type 配置解析类型
* @param string $name 配置名(如设置即表示二级配置)
* @param string $range 作用域
* @return mixed
*/
public static function parse($config, $type='', $name='', $range='') {
$range = $range ?: self::$range;
if (empty($type)) {
$type = pathinfo($config, PATHINFO_EXTENSION);
}
$class = false !==strpos($type, '\') ? $type : '\think\config\driver\'.
ucwords($type);
return self::set((new $class())->parse($config), $name, $range);
}
/**
* 加载配置文件(PHP格式)
* @param string $file 配置文件名
* @param string $name 配置名(如设置即表示二级配置)
* @param string $range 作用域
* @return mixed
*/
public static function load($file, $name='', $range='') {
$range = $range ?: self::$range;
if(!isset(self::$config[$range])) {
self::$config[$range] = [];
}
if(is_file($file)) {
$name = strtolower($name);
$type = pathinfo($file, PATHINFO_EXTENSION);
if('php'== $type) {
return self::set(include $file, $name, $range);
}elseif ('yaml'==$type && function_exists('yaml_parse_file')) {
return self::set(yaml_prase_file($file), $name, $range);
}else {
return self::parse($file, $type, $name, $range);
}
}else {
return self::$config[$range];
}
}
/**
* 检测配置是否存在
* @param string $name 配置参数名(支持二级配置 .号分割)
* @param string $range 作用域
* @return bool
*/
public static function has($name, $range ='') {
$range = $range ?: self::$range;
if(!strpos($name, '.')) {
return isset(self::$config[$range][strtolower($name)]);
}else {
//二维数组设置和获取支持
$name = explode('.', $name, 2);
return isset(self::$config[$range][strtolower($name[0])][$name[1]]);
}
}
/**
* 获取配置参数 为空则获取所有配置
* @param string $name 配置参数名(支持二级配置 .号分割)
* @param string $range 作用域
* @return mixed
*/
public static function get($name = null, $range = '') {
$range = $range ?: self::$range;
//无参数是获取所有
if(empty($name) && isset(self::$config[$range])) {
return self::$config[$range];
}
if(!strpost($name, '.')) {
$name = strtolower($name);
return isset(self::$config[$range][$name]) ? self::$config[$range][$name]: null;
} else {
//二维数组设置和获取支持
$name = explode('.', $name, 2);
$name[0] = strtolower($name[0]);
return isset(self::$config[$range][$name[0]][$name[1]]) ? self::$config[$range][$name[0]][$name[1]] : null;
}
}
最后
以上就是背后茉莉为你收集整理的tp5 config.php,tp5开发手册阅读笔记 - Config.php详解的全部内容,希望文章能够帮你解决tp5 config.php,tp5开发手册阅读笔记 - Config.php详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复