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方法才能读取。

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

目录
相关文章
|
JavaScript
nuxt项目:全局获取process.env信息
nuxt项目:全局获取process.env信息
374 0
|
6月前
|
存储 运维 Serverless
函数计算产品使用问题之在YAML文件中配置了环境变量,但在PHP代码中无法读取到这些环境变量,是什么原因
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
开发工具
环境变量,环境变量就是在操作系统中记录的一些关键性信息,以辅助系统运行,env,echo $PATH可以取出环境变量,全局变量的使用方法是定义,什么时候用,什么时候取,export MYNAME=it
环境变量,环境变量就是在操作系统中记录的一些关键性信息,以辅助系统运行,env,echo $PATH可以取出环境变量,全局变量的使用方法是定义,什么时候用,什么时候取,export MYNAME=it
|
5月前
|
Java Linux Shell
配置系统PATH环境变量
配置系统PATH环境变量
|
JavaScript
Node.js:cross-env跨平台设置和使用环境变量
Node.js:cross-env跨平台设置和使用环境变量
334 0
|
JavaScript Unix 开发者
node环境中设置process环境变量
node环境中设置process环境变量
|
安全 应用服务中间件 PHP
TP5.0.20 - TP5更改网站目录为/public 后运行出错解决
当程序要使用例如fopen()或file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。 本指令不受安全模式打开或关闭的影响。
318 0
|
PHP
【TP5】自定义命令行
【TP5】自定义命令行
150 0
【TP5】自定义命令行
TP5.1自定义命名空间使用命令行添加文件(修改源码)
TP5.1自定义命名空间使用命令行添加文件(修改源码)
129 0
TP5.1自定义命名空间使用命令行添加文件(修改源码)
【TP5】配置单独的配置文件
【TP5】配置单独的配置文件
126 0
【TP5】配置单独的配置文件