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

file

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

蟲-龍
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

以下是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()就会只返回默认值。

5年前 评论
讨论数量: 1

以下是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()就会只返回默认值。

5年前 评论

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