我是靠谱客的博主 背后茉莉,最近开发中收集的这篇文章主要介绍tp5 config.php,tp5开发手册阅读笔记 - Config.php详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//框架类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详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部