Laravel5.6 配置文件缓存的问题?

file

配置缓存的文档中有这样一句话:{note} 如果在部署过程中执行 config:cache 命令,那你应该确保只从配置文件内部调用 env 函数。一旦配置被缓存,.env 文件将不再被加载,所有对 env 函数的调用都将返回 null。
意思是如果执行了 php artisan config:cache 命令,那么env这个函数除了配置文件中能使用,其他地方都无法使用。这个据我对laravel5.4的了解是没有这样的限制的,算是新功能?当然我还没有下载5.6的框架具体验证,发个讨论,看看大家说法。

蟲-龍
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
JimChen
最佳答案

以下是5.4
https://github.com/laravel/framework/blob/...

以下是5.6
https://github.com/laravel/framework/blob/...

一样的,当判断到你配置的缓存文件存在,就不会进行加载.env文件变量的操作,这里操作包括putenv("key=value")$_ENV[key]=value$_SERVER[key]=value,所以当你config:cache之后,使用env()获取.env文件变量就会失效,注意env()是使用getenv()来获取变量值,没有进行putenv()自然getenv()会返回falseenv()就会只返回默认值。

2年前 评论
讨论数量: 1
JimChen

以下是5.4
https://github.com/laravel/framework/blob/...

以下是5.6
https://github.com/laravel/framework/blob/...

一样的,当判断到你配置的缓存文件存在,就不会进行加载.env文件变量的操作,这里操作包括putenv("key=value")$_ENV[key]=value$_SERVER[key]=value,所以当你config:cache之后,使用env()获取.env文件变量就会失效,注意env()是使用getenv()来获取变量值,没有进行putenv()自然getenv()会返回falseenv()就会只返回默认值。

2年前 评论

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