概述
Config
功能与用途
加载配置文件,读取或写入配置项。
TP5 默认是PHP数组形式,但可以通过扩展加载更多类型的配置文件,比如 ini 或者 xml等,只要实现对应的驱动即可。
额外说明
本文涉及的任何“二级配置”,本质上都是指 二维数组。
参考手册
文件位置
thinkphplibrarythinkConfig.php
默认配置文件位置
applicationconfig.php
命名空间
namespace think;
声明
所有文章均为1024编程实验室(www.sodevel.com)原创,任何形式的转载都必须征得本站同意。
作者联系方式,微信:pmtt9121,QQ 983430207
类概况
类比较简单,不过所有的属性、方法,都是 static(静态) 的,所有的类方法、属性,都是通过 Config::xxxx() 这种方法进行调用,无需实例化。
类属性static $config = [] 加载的所有配置文件,都会读入该数组
static $range = ‘_sys_‘ 配置作用域
类方法range() 修改作用域
parse() 解析配置文件
load() 加载配置文件
has() 检查配置项是否存在
get() 读取配置项
set() 写入配置项
reset() 重置配置参数
load() 方法详解
通过此方法,可加载任何配置文件。
参数说明$file 准备加载的配置文件名
$name 配置名,作为二级配置时需要
$range 作用域
功能实现检查是否配置了作用域
如果配置了作用域,以作用域作为 config 的键名
is_file(file)如果file)如果file有效则继续处理,否则返回 配置数组(多数是空数组)
使用 pathinfo() 获取文件后缀,以此判断配置类型
如果是 .php 文件,直接调用 self::set(include $file) 载入配置
如果是 yaml 类型的配置,使用 yaml_parse_file() 方法处理
其他类型,则调用parse() 方法进行处理。
比较有趣的用法$range = $range ?: self::$range;
使用三元运算符时,?: 代表什么意思呢?大家可以思考一下。return self::set(include $file, $name, $range);
上面这段代码,大约是这样执行的。$file 指的是配置文件,内部代码是 return [‘a’=>1,’b’=>2]这样的格式
include $file,表示包含配置文件,并将配置数组作为参数传递给 set() 方法
self::set() 将配置数组写入到self::config 类属性
return 返回最终的结果
其他有趣的语法
set() 方法//如果$name变量是 字符串
if (is_string($name))
//如果字符串中,含有.号(视为二级配置)
if (!strpos($name, '.'))
parse() 方法return self::set((new $class())->parse($config), $name, $range);
new $class() 根据不同的配置文件类型,实例化不同的类,来进行分析工作。
总结
所谓有趣的语法,算是一些奇淫巧技,给入门的同学做参考。
进阶之后,重点还是要放在整体设计上。
最后
以上就是顺心板栗为你收集整理的php 类调用config,20171226 - ThinkPHP5 Config配置管理类的全部内容,希望文章能够帮你解决php 类调用config,20171226 - ThinkPHP5 Config配置管理类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复