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

优先级

打开惯例配置文件/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' => '我是场景配置项中的内容',],
];
 ?>

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


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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,197评论 19赞 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,385评论 6赞 342
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 17,175评论 2赞 89
  • 前言 最近在学习PHP的一个框架:ThinkPHP(下文简称TP),此文作为阶段性学习总结用,也希望对读者能有一些...
    EVANIMARIA阅读 7,911评论 0赞 5
  • 每个大都市里,都有自己的城市客厅。 广州目前最大的城市客厅在花城广场。在广州塔的正北方。找到广...
    子筠视觉阅读 1,165评论 0赞 3

友情链接更多精彩内容