config:cache 执行前,为什么要确保配置文件调用了 env 函数?
如果你在部署过程中执行了 config:cache 命令,那么你应该确保配置文件中调用了 env 这个函数。一旦配置被缓存了,将不会加载 .env 文件,对 env 函数的所有调用都将返回 null。
这句话什么意思,字都认识,弄不明白到底是个什么意思??这个命令执行后,就不会加载.env的配置了,所有地方再调用env函数都会返回null。那么命令执行前确保还是不确保调用env函数有什么关系。调用了也行,执行前不调用env的情况只要不通过.env配置好了不也行么,确保这个词弄得迷糊了。为什么非要调用呢?
菜鸟容易钻茄子地,真迷惑啊?大神面前无沟壑,菜鸟脚下全是坑。
高认可度评论:
其实就是让你只在配置文件里调用
env
函数,在其他任何地方都不要调用,因为一旦执行config:cache
之后,你在其他任何地方调用env
都会返回null
其实就是让你只在配置文件里调用
env
函数,在其他任何地方都不要调用,因为一旦执行config:cache
之后,你在其他任何地方调用env
都会返回null
测试了一下,还真是,当执行了
php artisan config:cache
,不能通过env
获取了因为如果缓存了,就不会实例化
Dotenv
去把.env
文件加载到环境变量,所以就获取不到了。@FMW 是的,你说的对。“确保调用了”让我误入歧义。
----以下这句话:
如果你在部署过程中执行了 config:cache 命令,那么你应该确保配置文件中调用了 env 这个函数。一旦配置被缓存了,将不会加载 .env 文件,对 env 函数的所有调用都将返回 null。
-----修改成:
如果你在部署过程中执行了 config:cache 命令,配置就会被缓存,所以将不能再通过env函数加载 .env 文件,且再对 env 函数调用都将都返回 null。
----消除歧义。
并不是配置文件中非要调用.env这个函数,只是意思是如果配置缓存后,laravel的配置文件被缓存,再调用.env函数,对缓存的配置文件无效。
这个意思应该就是,设置缓存一般用于正式环境,正式环境是不会有.env文件。如果你是本地开发环境去设置,.env里面配置就失效了。