ThinkPHP 扩展配置注意事项

石光珠
• 阅读 2968

概要

在 ThinkPHP 3.0 中引入了扩展配置。扩展配置的优先级仅次于动态配置而高于惯例配置,项目配置等
项目配置文件在部署模式的时候会纳入编译缓存,也就是说编译后再修改项目配置文件就不会立刻生效,需要删除编译缓存后才能生效。扩展配置文件则不受此限制影响,即使在部署模式下面,修改配置后也可以实时生效。基于扩展配置的以上特性,通常扩展配置是为了某些特殊的需要,而从项目配置里面分离出来的一些配置信息,这样的目的是为了便于维护和管理。

定义扩展配置

扩展配置文件位于项目配置目录下(PS:这个比较重要),如 Conf/user.php,要启用扩展配置,首先需要在项目配置文件里面定义 LOAD_EXT_CONFIG 参数:

'LOAD_EXT_CONFIG'=>'user',
// 还可以定义多个扩展配置文件
'LOAD_EXT_CONFIG'=>'user,db',

如上面的参数定义所示,扩展配置可以是一个或多个配置文件。
编辑 Conf/user.php 文件,写入配置参数:

<?php
return array(
    'USER_TYPE'          => 2,
    'USER_AUTH_TYPE'     => 1,
);
?>

那么在操作方法里就可以通过 C 方法来读取扩展配置里的参数:

C('USER_TYPE')

在项目配置文件中,也可以以二级配置方式加载加载扩展配置文件:

'LOAD_EXT_CONFIG'=>array('USER'=>'user','DB'=>'db'),

那么同样的 user.php 扩展配置文件,要获取配置参数值的方式改变为:

C('USER.USER_TYPE')

二级配置方式,可以避免大项目中参数冲突问。

避免和系统内置配置文件发生冲突

下面表格中列出的配置文件已经被 ThinkPHP 系统使用,在定义扩展配置文件时,请勿使用下面的文件名:

文件名 说明
config.php 项目配置文件
tags.php 项目行为配置文件
alias.php 项目别名定义文件
debug.php 项目调试模式配置文件(以及项目设置的 APP_STATUS 对应的配置文件)
core.php 项目追加的核心编译列表文件
点赞
收藏
评论区
推荐文章
Easter79 Easter79
4年前
spring和Drools规则引擎的使用
Drools5.2.0.Final与Spring3集成测试在drools5.2,有一个jar包:droolsspring5.2.0.Final.jar,其中定义了在spring中应用的drools的扩展。通过这些扩展,可以直接在spring的配置文件中,配置knowledgebase、session等bean,从而在spring配置的程序中直
Easter79 Easter79
4年前
springboot读取外部配置文件
springboot项目打成jar包后不好进行配置文件修改,可设置为读取外部配置文件,方便进行配置修改.步骤:1.将jar包中的application.properties配置文件复制到自定义路径下;2.运行jar包命令指定外部配置文件路径:nohupjavajar.jarspring.config.location
捉虫大师 捉虫大师
4年前
nacos配置中心模块详解
本文已收录https://github.com/lkxiaolou/lkxiaolou欢迎star。配置中心业务上的配置,功能开关,服务治理上对弱依赖的降级,甚至数据库的密码等,都可能用到动态配置中心。在没有专门的配置中心组件时,我们使用硬编码、或配置文件、或数据库、缓存等方式来解决问题。硬编码修改配置时需要重新编译打包,配置文件需要重启应用,数据库受
胖大海 胖大海
3年前
Linux centos7设置禁Ping
1.打开配置文件vim /etc/sysctl.conf2.修改配置文件,在底部新加一行net.ipv4.icmpechoignoreall13.修改完成后执行sysctlp使新配置生效sysctlp4.验证这样就说明设置成功了,缺乏机器练手的小伙伴可以3A网络看看!
Wesley13 Wesley13
4年前
Java缓存Ehcache
需要在Spring配置文件中配置:<!配置缓存管理器工厂<beanid"cacheManager"class"org.springframework.cache.ehcache.EhCacheManagerFactoryBean"<propertyname"co
Stella981 Stella981
4年前
Dubbo实践(七)扩展点
与JDK的SPI机制类似,Dubbo也在METAINF路径下定义了多种扩展接口。只是JDKSPI机制是Java后台帮你实现读取文件并对接具体的实现类,而Dubbo是自己去读文件。扩展点配置扩展点机制有几个要点:1. 根据关键字去读取配置文件,获得具体的实现类比如在dubboprovider.xml文件中配置:<dub
Stella981 Stella981
4年前
SpringBoot项目优化和Jvm调优
阅读文本大概需要3分钟。项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.properties。SpringBoot项目详细的配置文件修改文档https:
Easter79 Easter79
4年前
SpringBoot项目优化和Jvm调优
阅读文本大概需要3分钟。项目调优作为一名工程师,项目调优这事,是必须得熟练掌握的事情。在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行。一、修改配置文件关于修改配置文件 application.properties。SpringBoot项目详细的配置文件修改文档https:
Stella981 Stella981
4年前
C# 程序修改config文件后,不重启程序刷新配置ConfigurationManager
基本共识:ConfigurationManager自带缓存,且不支持写入。如果通过文本写入方式修改配置文件,程序无法刷新加载最新配置。PS.Web.config除外:Web.config修改后,网站会重启(即Web程序也无法在运行时刷新配置)。为什么要在程序运行时,修改配置(刷新配置):\
Wesley13 Wesley13
4年前
mySQL配置文件、备份与恢复
mysql配置文件mysql的配置文件为/etc/my.cnf配置文件查找次序:若在多个配置文件中均有设定,则最后找到的最终生效/etc/my.cnf/etc/mysql/my.cnfdefaultextrafile/PATH/TO/CONF_FILE~/.my.cnfmysql常用配置文件参数
Easter79 Easter79
4年前
Spring加载资源文件并静态化
说明:     在实际项目中有时候需要用到很多的配置文件,而这些配置文件我们又想按功能分文件加载。第一步     我们需要在Spring的配置文件中加入一段配置,配置如下<beanid"propertyBean"class"com.funo.util.WcityProperty"<propertyname