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这四个配置文件,这些文件,会自动的在某些时候加载,也就是点一下,一般都是些别名 ...
随机推荐
- 打气筒的Api
1.获取打气筒的第一种方法 view=View.inflate(getApplicationContext(),R.layout.tv,null); 2.获取打气筒的第二种方法 view=Layout ...
- PB-日志-系统函数2.13.7Match()、MatchW()
---恢复内容开始--- Match() 功 能:确定字符串中是否包含指定模式的字符. 语 法:Match ( string, textpattern ) 参 数:string:string类型,指定 ...
- 历尽磨难之PL/SQL链接Oracle数据库
说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...
- linux的三种安装软件包的方式(小白的学习之旅)
tar包,整个安装过程可以分为以下几步: 1) 取得应用软件:通过下载.购买光盘的方法获得: 2) 解压缩文件:一般tar包,都会再做一次压缩,如gzip.bz2等,所以你需要先解压.如果是最常见的g ...
- Java中的四舍五入
经典案例分析:public class RoundTest { public static void main(String[] args) { System.err.printl ...
- TryUpdateModel
MSDN参考 https://msdn.microsoft.com/zh-cn/library/system.web.mvc.controller.tryupdatemodel.aspx 相关博文 h ...
- php : 自定义分页类
Page.class.php : <?php namespace Tools; class Page { private $total; //数据表中总记录数 private $listRows ...
- Android app开发知识小结
Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,d ...
- (原创)提取Xilinx开发工具的迅雷下载地址
①进入Xilinx官网,进入Device->Design Tools,选择你想要下载的任意工具. ②进入新web页面,右方点击“Downloads”.③进入版本选择页面,选择想要的版本号,点击相 ...
- NodeJS 初体验
console.log('%s: %d', 'Hello', 25); // 可以像C语言格式一样输出//app.jsvar http = require('http');http.createSe ...