config:cache 执行前,为什么要确保配置文件调用了 env 函数?

如果你在部署过程中执行了 config:cache 命令,那么你应该确保配置文件中调用了 env 这个函数。一旦配置被缓存了,将不会加载 .env 文件,对 env 函数的所有调用都将返回 null。
这句话什么意思,字都认识,弄不明白到底是个什么意思??这个命令执行后,就不会加载.env的配置了,所有地方再调用env函数都会返回null。那么命令执行前确保还是不确保调用env函数有什么关系。调用了也行,执行前不调用env的情况只要不通过.env配置好了不也行么,确保这个词弄得迷糊了。为什么非要调用呢?
菜鸟容易钻茄子地,真迷惑啊?大神面前无沟壑,菜鸟脚下全是坑。

not only a learner , but also a user .
ruodee
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 5

其实就是让你只在配置文件里调用env函数,在其他任何地方都不要调用,因为一旦执行config:cache之后,你在其他任何地方调用env都会返回null

6年前 评论

其实就是让你只在配置文件里调用env函数,在其他任何地方都不要调用,因为一旦执行config:cache之后,你在其他任何地方调用env都会返回null

6年前 评论

测试了一下,还真是,当执行了php artisan config:cache,不能通过env获取了

6年前 评论

file
因为如果缓存了,就不会实例化Dotenv去把.env文件加载到环境变量,所以就获取不到了。

6年前 评论
ruodee

@FMW 是的,你说的对。“确保调用了”让我误入歧义。
----以下这句话:
如果你在部署过程中执行了 config:cache 命令,那么你应该确保配置文件中调用了 env 这个函数。一旦配置被缓存了,将不会加载 .env 文件,对 env 函数的所有调用都将返回 null。
-----修改成:
如果你在部署过程中执行了 config:cache 命令,配置就会被缓存,所以将不能再通过env函数加载 .env 文件,且再对 env 函数调用都将都返回 null。
----消除歧义。
并不是配置文件中非要调用.env这个函数,只是意思是如果配置缓存后,laravel的配置文件被缓存,再调用.env函数,对缓存的配置文件无效。

6年前 评论

这个意思应该就是,设置缓存一般用于正式环境,正式环境是不会有.env文件。如果你是本地开发环境去设置,.env里面配置就失效了。

5年前 评论

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