yii2 配置文件加载顺序, 以及调用自定义配置信息。
在配置上一般有以下问题:
- 每个团队成员都会有自己的配置项,提交这样的配置项将会影响其他团队成员;
- 生产库密码和API密钥不应该出现在代码库中;
- 有多个服务器环境的情况:开发、测试、生产;每一种环境应该有自己的配置项;
- 每种情况都去定义所有的配置选项,是非常重复且要花大量时间去维护。
为了解决这些问题,yii引入了一种简单的环境概念。每一种环境被一套在environments
目录中的文件所表示。init
命令用于切换这些环境。它所做的就是从环境目录复制一切交给根目录下的所有应用程序。
默认有2套环境:dev
和prod
。前者是开发环境,它包含所有的开发工具和调试启用;后者用于服务器部署,它的debug和开发工具都是关闭的。
典型的环境包含应用启动文件(比如index.php
)和诸如以-local.php
后缀的配置文件。这些或者是团队成员个人的配置(通常用于dev
环境),或者是特定服务器的配置。比如,生产库链接就可能在prod
环境的-local.php
配置中。这些本地的配置文件被添加到.gitignore
文件中,以至于不会被提交到源代码库中。
为了避免重复的配置覆盖对方,比如,frontend应用按以下的顺序读取配置:
common/config/main.php
common/config/main-local.php
frontend/config/main.php
frontend/config/main-local.php
Parameters按以下的顺序读取配置:
common/config/params.php
common/config/params-local.php
frontend/config/params.php
frontend/config/params-local.php
后面的配置文件会覆盖掉前面的配置文件
调用时,用以下命令,即可调用配置
yii\base\Application::params
该属性为一个数组,指定可以全局访问的参数,代替程序中硬编码的数字和字符,应用中的参数定义到一个单独的文件并随时可以访问是一个好习惯。 例如用参数定义缩略图的长宽如下:
[
'params' => [
'thumbnail.size' => [128, 128],
],
]
然后简单的使用如下代码即可获取到你需要的长宽参数:
$size = \Yii::$app->params['thumbnail.size'];
$width = \Yii::$app->params['thumbnail.size'][0];
这样就可以自定义一些参数, 或通过file_put_contents 来随时写入配置。
yii2 配置文件加载顺序, 以及调用自定义配置信息。的更多相关文章
- bash 的配置文件加载顺序
bash配置文件的加载顺序和登陆方式有关,下面先介绍下登陆方式. 1 登陆方式有2种 登陆式SHELL: su - oracle su -l oracle 正常从终端登陆 非登录式SHELL: ...
- struts几个配置文件加载顺序_2015.01.04
struts几个配置文件加载顺序: 01:struts-default.xml 02:struts-plugin.xml 03:struts.xml 04:struts.properties 05:w ...
- struts2配置文件加载顺序
struts2配置文件加载顺序: struts-default.xml/ struts-plugin.xml/ struts.xml/ struts.properties/ web.xml
- Spring Boot配置文件加载顺序
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过spring.config.location改变配置文件的位置 二.外部配置加载顺序 1.使用命令行参数指定加 ...
- hadoop配置文件加载顺序(转)
原文 http://www.cnblogs.com/wolfblogs/p/4147485.html 用了一段时间的hadoop,现在回来看看源码发现别有一番味道,温故而知新,还真是这样的 在使用h ...
- SpringBoot的配置文件加载顺序和使用方式
1.bootstrap.properties bootstrap.properties 配置文件是由"根"上下文优先加载,程序启动之初就感知 如:Spring Cloud Conf ...
- @PropertySource加载文件的两种用法以及配置文件加载顺序
第一种: 现在我把资源文件的路径放在application.properties里 config.path=/home/myservice/config.properties @PropertySou ...
- Springboot配置文件加载顺序
使用Springboot开发的时候遇到了配置的问题,外部config里的配置文件本来没有配置https怎么启动还是https呢,原来开发中测试https在classpath路径的配置文件添加https ...
- shell脚本,配置文件加载顺序,以及什么时候加载。
在linux系统中,有/etc/profile,/etc/bashrc ,~/.bash_profile,~/bashrc这四个配置文件,这些文件,会自动的在某些时候加载,也就是点一下,一般都是些别名 ...
随机推荐
- 刘子健的第二次博客——有关CCCCC语言(・᷄ᵌ・᷅)
刘子健的第二次博客--有关CCCCC语言(・᷄ᵌ・᷅) 下面又到了回答老师问题的时候啦-(・᷄ᵌ・᷅) 有些问题正在深思熟虑中!敬请期待近期的不间断更新! 你有什么技能比大多人(超过90%以上)更好? ...
- x86和x64的区别
整理了下网上的资料,归类了下,大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86.x86并不是指32位环境,而是指80x86架构,这个架构目前有32位,64位 ...
- 【leetcode❤python】 168. Excel Sheet Column Title
class Solution(object): def convertToTitle(self, n): """ :type n: in ...
- Canvas的API整理
canvas元素 可被用来通过脚本(通常是JavaScript)绘制图形.比如,它可以被用来绘制图形,制作图片集合,甚至用来实现动画效果.你可以(也应该)在元素标签内写入可提供替代的的代码内容,这些内 ...
- web前端之HTML的大框架(body元素与frameset元素)
web前端之HTML的大框架 body元素与frameset元素 对于从事html的人员来说,我们一般熟悉的框架是先声明html ,然后在<html>标签对里包着<head ...
- web前端之html5开发中常用的开发工具
正所谓“工欲善其事,必先利其器”,对Web开发人员来说,好工具的使用总会给人带来事半功倍的效果.正准备学习HTML5或者已经进行了一段时间的HTML5开发的童鞋,都有必要了解下,HTML5都有哪些开发 ...
- awk中分隔符转换
awk中分隔符转换的问题(转) 在awk中明明用OFS重新设置了分隔符,为什么在输出的时候还是原样输出呢! 他是这么写的: echo 1,2,3,4 | awk 'BEGIN{FS=" ...
- 狗汪汪玩转无线电 -- GPS Hacking
狗汪汪玩转无线电 -- GPS Hacking Kevin2600 · 2015/12/09 10:12 0x00 序 GPS Hacking 在过去几年的安全会议上一直都是很受关注的议题. 但往往因 ...
- linux应用程序开发-进程通信(IPC)
IPC why: 1.数据传输 2.资源共享 目的: 3.通知事件 4.进程控制 发展: 1.UNIX进程间通信 2.基于SYStem V 3.POSIX 方式分类: 1.pipe(管道) FIFO( ...
- iOS tabBar双击事件
思路: 在tabBarController的代理方法 shouldSelectViewController 中, 通过判断tabBar选中的控制器是否是当前控制器 并 比对两次点击的时间间隔 来判断是 ...