Laravel upgrade documentation从5.2到5.3规定如下:为什么强烈建议不要在缓存配置文件时使用env()助手?
缓存和ENV
如果您在部署过程中使用
config:cache
命令,必须 确保您只调用env
功能从您的 配置文件中,而不是从您的应用程序的其他任何地方。如果要调用从应用程序中
env
,我们强烈 建议你在这个位置,而不是添加适当的配置值来配置 文件,并致电env
,让你转换 您env
呼叫配置电话。
问题的文档不回答是:为什么?
不应该env()
帮手,当使用内的应用,仍然正常工作?我不能在配置缓存后仍然使用env()
,而不是被迫在我的整个项目中找到它并用config()
帮助器替换它,这是由文档建议的(间接)?
举例来说,如果我有这在我的app.php:
'env' => env('APP_ENV', 'production')
,它会获取缓存与config:cache
,但我还是用env()
帮手某处代码,那么有没有什么原因是env('APP_ENV')
会给我比config('app.env')
别的东西吗?
App::environment()
电话怎么样 - 正在使用它也不推荐config:cache
用于生产?
嗨,我理解缓存的概念,它绝对好用,但真正的问题是:为什么文档在配置缓存后直接使用'env()'helper?背后的原因是什么?即使配置被缓存,'env()'helper仍然应该直接访问**。env **文件。如果是这样的话,使用'env()'有什么问题?如果真的没有,为什么它建议基本上找到所有'env()'出现并将它们交换为'config()'? – lesssugar
@lesssugar这是因为'config:cache'是为了生产。是在这种环境下保证良好表现的一种方法。 – Asur