本文总结下5.2最新版本在配置类设计方面的调整。
取消惯例配置
惯例配置文件(convention.php)在最新版本中已经正式取消,在此之前已经从核心包移动到应用仓库(的根目录下)。由于默认配置已经全部作为相关类库的默认属性配置,惯例配置文件已经不再需要。
从方便项目配置的角度,应用仓库的config目录下面提供了默认的配置,修改起来更清晰,可以直接修改配置。
取消动态设置
配置类建议仅用于读取而不要动态设置,便于将来统一使用配置中心管理。如果使用了第三方的配置扩展的话(例如Yaconf)是不支持设置配置的。因此配置类不再提供对某个配置参数的动态设置方法,但出于部分数据库配置的需求,保留了批量某个配置文件的用法。
下面用法不再支持
Config::set('app.app_name', 'think');
保留了批量(合并)设置用法
Config::set([ 'app_name' => 'think', 'default_timezone' => 'Asia/Shanghai', ], 'app');
统一配置读取操作
取消了之前的读取一级配置的pull方法,新版统一使用get方法读取所有的配置值,系统会自动判断。
同时取消了配置参数的默认前缀(一级配置),所有不带点号的配置参数都认为是读取一级配置。
// 读取app配置 Config::get('app'); // 读取具体配置必须改为 Config::get('app.app_name'); // 不再支持原来的读取 Config::get('app_name');
Config类不再支持数组方式读取
Config类不再使用ArrayAccess接口,因此不再支持数组方式读取。
路由和URL配置独立
路由和URL请求相关的配置参数独立为route.php配置文件,而不再使用app.php配置文件。
PHP中文网有大量免费的ThinkPHP入门教程,欢迎大家来学习。
本文转自:https://blog.thinkphp.cn/962855
以上是ThinkPHP5.2:配置类的变化的详细内容。更多信息请关注PHP中文网其他相关文章!