关于 config 文件和 env 文件的区别
如何理解config 文件和env文件的区别,感觉两边都能配置变量,难道就是env文件中不太适合嵌套嘛,有没有什么情况config文件中比较适合而env文件中不太适合的,或者相反的情况也可以
关于 LearnKu
.env不加入版本库,方便正式环境和本地配置
@draven Thanks♪(・ω・)ノ,明白了,确实之前写在config中写会出现这个问题,·当时不知道咋解决,就把config没加入版本库
如果环境是production, env函数在业务代码中用不了, 只能在config配置中使用, 但是config函数在任何地方都可以用
@农村闲散劳动力 谢谢, :joy: ,看的真仔细,就是看tp源码的时候发现env的作用完全被config 覆盖,想到了之前laravel 也是分开来的,产生了疑问
env 可以理解为系统环境变量,是不跟随代码一起存在代码仓库的,便于线上环境配置的管理和权限分配。
config 是配置在项目代码中的,跟随代码一起存在代码仓库的,任何开发者都有权限看到。
线上数据库用户名密码等关键配置信息完全暴露还是不太好的
@yonghuming-1122 你这么一说我突然觉得env 和鸟哥写的yaconf作用很一样了, :joy: ,yaconf就是不和项目代码在一块,直接修改了也不用代码重新发布
git上传的时候 都会设置忽略.env
比如我的商户平台账号密码不想传上去
config还有缓存
一般在config里面使用env
不建议直接使用env
根据12factor的规范,配置与代码必须严格分离。config是代码的一部分,而env不是。
好的,谢谢 :joy:
还有就是在正式环境中,肯定要运行
php artisan config:cache,这样后env()就不能用了,所以env()在开发中只能在 config 目录下使用1.env 文件不受版本控制 方便各个环境配置
2.执行 php artisan cache:config 只缓存 config 中文件 env()失效
3.env 文件属于配置文件 没有 像config 文件中那样 return 数组
4.如果使用 cache:config 后 修改 env 文件 不使用cache:clear 重新缓存的话 配置文件不生效