ThinkPHP5配置Config

配置文件Config

Config文件包含:2个属性,7个方法。其中2个属性为私有静态属性,外部不可访问。7个方法为公有静态方法,外部可以直接用类名访问,不需要实例化。

配置文件Config目录

三类配置目录:默认配置目录,自定义配置目录,扩展配置目录。无论采用哪一种配置目录,最终都会于应用配置文件合并输出。系统application下的config.php与框架thinkphp下的convention.php这两个文件为默认文件,通常建议不要修改。

1.默认配置目录

应用配置:application目录

模块配置:application/模块目录

2.自定义配置目录

入口文件中添加:CONF_PATH常量

按常量约定创建对应配置目录

3.扩展配置目录

在application/模块目录中创建extra目录

文件名->配置名,内容->配置名

配置文件Config格式

四种配置文件格式:数组,ini,xml,json。其中数组较为常用,无论哪一种格式配置文件,最终都是以Array数组键值对的方式返回。

场景配置

场景配置,可以看到文件级的动态配置,它为框架的使用者,提供了一种在特殊的环境下,简便的解决方案。

1.修改应用或模块配置文件中的:‘app_status’,将值设置为,如:home;
2.在与该配置文件同级的目录下,创建与场景名称同名的配置文件,如home.php;
3.再次执行,将会自动根据场景配置文件(home.php),更新当前应用的配置文件。
模块配置

为降低应用的复杂度,提供安全性,绝大多数情况下,模块配置用得并不多,但如果你有个性化需求时,使用模块设置会方便很多。

1.模块可以有自己的配置文件,独立配置文件和场景配置文件;
2.模块配置的优先级高于应用配置,相同配置项会覆盖掉应用汇总的配置项;
3.模块默认配置文件名是:config.php;
4.模块默认独立配置文件有二个:database.php,validate.php;
5.模块场景配置文件名,根据‘app_status’参数值确定。

其它位置的配置文件

加载任意位置,非php格式的配置文件,不仅提高了灵活性,还为其它应用提供了一个配置接口。

1.如果配置文件是php文件

\think\Config::load(APP_PATH.'完整文件名'); //使用绝对路径加载,默认返回数组

2.如果配置文件是其它格式:ini,xml,json等

\think\Config::parre(APP_PATH.'完整文件名'.'ini'); //使用绝对路径加载,默认返回数组

注意:读取其它位置的配置文件,都是动态加载,需要在控制器中的方法中执行加载。

读取配置项

一.读取配置项

1.类方法:Config::get('配置参数'),参数为空则是获取全部配置项;
2.使用助手函数:config('配置参数'),参数说明与Config::get()玩完一样;
3.读取二级配置项,参数与值之间用.(点)进行连接。

二.判断某配置项是否存在

1.类方法:Config::has('配置参数');//返回布尔值;
2.助手函数:config('?配置参数');//返回布尔值。

设置配置项

在控制器的方法中,动态设置配置项,可以临时改变某个配置项,优先级也是最高

一.类方法:\think\Config.php

1.逐个配置:Config::set('配置参数',参数值);
2.批量配置:Config::set('数组');
3.二级配置:Config::set('配置参数','数组')。

二.助手函数:config()

1.逐个配置:config('配置参数','参数值');
2.批量配置:config('数组');
3.二级配置:config('配置参数','数组')。

创建独立配置文件

将应用模块中的部分可归类的配置独立出来,单独创建配置文件来加载,可以使我们的祝配置文件加载更快,执行效率更高。

1.用户自定义的独立配置文件必须放在应用或模块下面的extra目录下面;
2.默认独立配置文件dtabase.php[数据库],validate.php[验证规则]既可以放在extra下面,也可以放在与应用或模块同级的目录下面。如果放在extra目录下面,优先级大于放在应用或模块的同级目录下面;
3.文件名就是配置项名称,文件返回一个数组。

模块配置优先级

框架配置分级管理,可以最大限度的满足用户对应用运行环境的个性化需求,配置优先级的概念非常重要。

惯例配置(convention.php,config.php) < 应用配置(应用配置 < 独立配置 < 场景配置) < 模块配置(应用配置 < 独立配置 < 场景配置) < 动态配置(set)

配置项的作用域

配置项的作用域,类似于类或函数的命名空间,就是配置项对用户的可见性,随着应用规模的扩大,配置作用域的效果就越明显。

1.作用域与命名空间的概念类似,就是配置项的可见范围;
2.作用域的在表现形式上与二维数组是一样的;
3.切换作用域使用:Config::range('作用域');
4.可以将独立配置项归纳到作用域进行管理,也可以动态设置。

原文发布于微信公众号 - 风帆(wdswhf)

原文发表时间:2019-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券