TP5框架中配置文件加载的优先级

本文介绍了在ThinkPHP框架中不同配置文件的优先级顺序,并通过实例展示了框架如何处理多个配置源,帮助开发者理解并正确设置应用配置。

原文链接:https://www.jianshu.com/p/aed842ff434e

优先级


打开惯例配置文件/thinkphp/convention.php,添加配置项:

 

    // 测试项
    'test'                   => '我是惯例配置中的内容',

打开应用配置文件/application/config.php,添加配置项:

    // 测试项
    'test'                   => '我是应用配置中的内容',

创建模块配置文件/application/index/config.php,添加配置项:

    // 测试项
    'test'                   => '我模块配置中的内容',

最后,在 默认控制器/application/index/controller/Index.php文件的index()方法中动态设置:

class Index
{
public function index()
    {
      Config::set('test','我是动态配置中的内容');
    }
}

每一次的添加设置配置项,都用dump(Config::get('test'));方式去打印输出看下,会发现每次的设置,都会高于前一次的优先级,打印的内容都会以优先级高的为主。

 


 

 

 

如果应用配置中还有其他配置,那么优先级如下:

应用配置的其他情况

注释掉动态配置和模块配置,将配置级别恢复到应用配置级别,因为独立配置项都是二级配置项,所以需要修改应用配置项中的内容为:

    // 测试项
    'info'                   => ['test' => '我是应用配置项中的内容'],

查看方式也对应修改为:dump(Config::get('info.test'));

创建独立配置文件/application/extra/info.php,写入:

<?php
return [
  // 测试项
  'test' => '我是独立配置项中的内容',
];
 ?>

查看下配置项的输出,发现,确实是独立配置的优先级高于应用配置。

修改应用配置文件中的app_status项的值为home,创建场景配置文件/application/home.php,写入:

<?php
return [
  // 测试项
  'info' => ['test' => '我是场景配置项中的内容',],
];
 ?>

再查看下配置项的输出,发现,确实是场景配置的优先级高于独立配置。

 


 

 

 

这种关系,也适用于模块配置:

模块配置中的优先级

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



作者:IUVO
链接:https://www.jianshu.com/p/aed842ff434e
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值