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

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

not only a learner , but also a user .

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 5

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

1年前 评论

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

1年前 评论

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

1年前 评论
ruodee

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

1年前 评论

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

1年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!