美文网首页
16、TP5框架中配置文件加载的优先级

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

作者: IUVO | 来源:发表于2018-05-29 14:11 被阅读557次
    优先级
    打开惯例配置文件/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' => '我是场景配置项中的内容',],
    ];
     ?>
    

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


    这种关系,也适用于模块配置: 模块配置中的优先级

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

    相关文章

      网友评论

          本文标题:16、TP5框架中配置文件加载的优先级

          本文链接:https://www.haomeiwen.com/subject/umzojftx.html