在Laravel中,如何判断请求是否正在处理?

In Laravel, how can it be determined whether a request is being processed?

我有一些代码可以从网络服务器或 Tinker/a worker/a 脚本调用。代码需要确定是否正在从网络服务器调用。

我最初以为没有请求时 request() 会为 null,但事实并非如此。接下来我认为如果没有请求,request getHost 或 request getURI 将 return null,但这也不是真的。

是否有一种优雅的方法来确定代码是否是 运行 响应请求?我可以使用中间件,但这似乎也不必要地复杂。

我能想到的最佳解决方案是检查 $request->header('User-Agent') 是否包含 "Symfony"。这看起来很老套。

您可以使用 app()->runningInConsole() 检查请求是通过网络服务器还是通过控制台收到的。