为什么可以';加载时间四秒后,t Laravel access.env vars

为什么可以';加载时间四秒后,t Laravel access.env vars,laravel,soap,environment-variables,php-7.4,Laravel,Soap,Environment Variables,Php 7.4,我的Laravel站点在页面加载期间使用SoapClient访问另一个站点(在soap调用之前执行大约6秒的数据处理)。我注意到有时SoapClient会切换到非wsdl模式,并且过程会出错。我发现这是因为SoapClient的第一个构造函数参数(WSDL文件的URI)被传递了NULL。我觉得这很奇怪,因为这个值直接来自.env文件。该站点连接到数据库时没有问题,因此.env文件必须正常工作。我设置了一个函数,在页面加载期间使用env(…)重复访问.env变量。在一次Soap错误中,我发现大约在

我的Laravel站点在页面加载期间使用SoapClient访问另一个站点(在soap调用之前执行大约6秒的数据处理)。我注意到有时SoapClient会切换到非wsdl模式,并且过程会出错。我发现这是因为SoapClient的第一个构造函数参数(WSDL文件的URI)被传递了NULL。我觉得这很奇怪,因为这个值直接来自.env文件。该站点连接到数据库时没有问题,因此.env文件必须正常工作。我设置了一个函数,在页面加载期间使用env(…)重复访问.env变量。在一次Soap错误中,我发现大约在4秒钟的时间内,站点失去了对.env变量的访问。在此之前,信息是可访问的。在此之后,对env()的调用返回NULL。这可能与其他页面请求(可能重复调用同一页面,请求相同的进程)有关。此外,我刚刚将php升级到7.4.13(支持64位线程的xampp:php-7.4.13-Win32-vc15-x64)。以前有人看到过这一点吗,有办法解决这个问题吗

编辑====


SoapClient是在模型中创建的,env()函数用于访问环境变量。我了解到env()不应该在任何地方使用,而应该在配置文件中使用。这也许可以解释我的问题。

我从未见过这个问题。但一种方法可能是将env变量加载到配置变量中并使用它。例如:在config目录中创建
extra.php
文件,如下所示:


我采用了类似的修复方法。我将.env文件加载到$GLOBALS中,并从那里访问变量。