### 2019 年 3 月 3 日 发布 本文总结下`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`配置文件。