TP v5中环境变量在项目中的应用

简介: 环境变量,顾名思义就是在不同的系统环境,同一个变量的值可以有所不同。如开发环境、测试环境与正式环境下,数据库配置、静态资源文件Url前缀、缓存、各种key等配置都不相同,对于提交到仓库中的代码,理论上不应该将与环境相关的这些参数传进去。

环境变量,顾名思义就是在不同的系统环境,同一个变量的值可以有所不同。

如开发环境、测试环境与正式环境下,数据库配置、静态资源文件Url前缀、缓存、各种key等配置都不相同,对于提交到仓库中的代码,理论上不应该将与环境相关的这些参数传进去。但怎样实现有所区分,各自维护呢?没有经历过团队协作开发和利用工具自动化部署代码的人应该不会理解其中的小痛苦。环境变量就是一个比较好的实现方式了。

TP的v5中利用PHP对环境变量的读取以及模拟环境变量的支持,可以很好的实现这种需求。

以下为引用http://www.kancloud.cn/manual/thinkphp5/189989

在开发过程中,可以在应用根目录下面的.env来模拟环境变量配置,.env文件中的配置参数定义格式采用ini方式,例如:

app_debug =  true
app_trace =  true

如果你的部署环境单独配置了环境变量,那么请删除.env配置文件,避免冲突。

使用下划线分割定义配置参数名:

database_username =  root
database_password =  123456

或者使用

[database]
username =  root
password =  123456

获取环境变量的值可以使用下面的两种方式获取:

Env::get('database.username');
Env::get('database.password');
// 同时下面的方式也可以获取
Env::get('database_username');
Env::get('database_password');

可以支持默认值,例如:

// 获取环境变量 如果不存在则使用默认值root
Env::get('database.username','root');

可以直接在应用配置中使用环境变量,例如:

return [
    'hostname'  =>  Env::get('hostname','127.0.0.1'),
];

环境变量中设置的app_debug和app_trace参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。

环境变量的配置方法在此不详述了。

目录
相关文章
|
4月前
|
开发工具
环境变量,环境变量就是在操作系统中记录的一些关键性信息,以辅助系统运行,env,echo $PATH可以取出环境变量,全局变量的使用方法是定义,什么时候用,什么时候取,export MYNAME=it
环境变量,环境变量就是在操作系统中记录的一些关键性信息,以辅助系统运行,env,echo $PATH可以取出环境变量,全局变量的使用方法是定义,什么时候用,什么时候取,export MYNAME=it
|
4月前
|
Java Linux Shell
配置系统PATH环境变量
配置系统PATH环境变量
|
Serverless
函数计算FC环境变量怎么改
函数计算FC环境变量怎么改?
64 1
|
6月前
|
监控 程序员
第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE
第三十六章 使用 ^PROFILE 监控例程性能 - Using ^PROFILE
34 0
|
6月前
|
监控
第三十七章 使用 ^PROFILE 监控例程性能 - ^PROFILE 示例
第三十七章 使用 ^PROFILE 监控例程性能 - ^PROFILE 示例
35 0
|
Shell Linux Perl
10.2.3 环境变量的功能
10.2.3 环境变量的功能
99 0
tp6路由设置根据目录自动 /home/index/test
tp6路由设置根据目录自动 /home/index/test
151 0
|
安全 应用服务中间件 PHP
TP5.0.20 - TP5更改网站目录为/public 后运行出错解决
当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。
311 0
|
PHP
【TP5】自定义命令行
【TP5】自定义命令行
148 0
【TP5】自定义命令行
TP5.1自定义命名空间使用命令行添加文件(修改源码)
TP5.1自定义命名空间使用命令行添加文件(修改源码)
127 0
TP5.1自定义命名空间使用命令行添加文件(修改源码)