关于 config 文件和 env 文件的区别

如何理解config 文件和env文件的区别,感觉两边都能配置变量,难道就是env文件中不太适合嵌套嘛,有没有什么情况config文件中比较适合而env文件中不太适合的,或者相反的情况也可以

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 11
draven

.env不加入版本库,方便正式环境和本地配置

4年前 评论

@draven Thanks♪(・ω・)ノ,明白了,确实之前写在config中写会出现这个问题,·当时不知道咋解决,就把config没加入版本库

4年前 评论
农村闲散劳动力

如果环境是production, env函数在业务代码中用不了, 只能在config配置中使用, 但是config函数在任何地方都可以用

4年前 评论

@农村闲散劳动力 谢谢, :joy: ,看的真仔细,就是看tp源码的时候发现env的作用完全被config 覆盖,想到了之前laravel 也是分开来的,产生了疑问

4年前 评论

env 可以理解为系统环境变量,是不跟随代码一起存在代码仓库的,便于线上环境配置的管理和权限分配。
config 是配置在项目代码中的,跟随代码一起存在代码仓库的,任何开发者都有权限看到。
线上数据库用户名密码等关键配置信息完全暴露还是不太好的

4年前 评论

@yonghuming-1122 你这么一说我突然觉得env 和鸟哥写的yaconf作用很一样了, :joy: ,yaconf就是不和项目代码在一块,直接修改了也不用代码重新发布

4年前 评论
yonghuming-1122 4年前

git上传的时候 都会设置忽略.env
比如我的商户平台账号密码不想传上去

config还有缓存

一般在config里面使用env

不建议直接使用env

4年前 评论
fatrbaby

根据12factor的规范,配置与代码必须严格分离。config是代码的一部分,而env不是。

4年前 评论

好的,谢谢 :joy:

4年前 评论

还有就是在正式环境中,肯定要运行 php artisan config:cache,这样后 env() 就不能用了,所以 env() 在开发中只能在 config 目录下使用

4年前 评论

1.env 文件不受版本控制 方便各个环境配置
2.执行 php artisan cache:config 只缓存 config 中文件 env()失效
3.env 文件属于配置文件 没有 像config 文件中那样 return 数组
4.如果使用 cache:config 后 修改 env 文件 不使用cache:clear 重新缓存的话 配置文件不生效

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!