我编写了一个中间件终止函数,它将请求执行期间收集的所有日志发送到外部日志服务器。这些日志主要收集在无法直接访问请求对象的辅助函数中,当从控制器调用时,将请求作为参数发送给辅助函数会使我的代码变得丑陋。
在 Laravel 5.1 中是否有一种干净的方式来拥有一个全局变量,我可以在其中存储所有日志以供以后由终止函数使用?
我编写了一个中间件终止函数,它将请求执行期间收集的所有日志发送到外部日志服务器。这些日志主要收集在无法直接访问请求对象的辅助函数中,当从控制器调用时,将请求作为参数发送给辅助函数会使我的代码变得丑陋。
在 Laravel 5.1 中是否有一种干净的方式来拥有一个全局变量,我可以在其中存储所有日志以供以后由终止函数使用?
如果您想使用某种全球可用的消息包。您可以在服务提供者注册方法中执行以下操作:
$this->app->singleton('my.logging', function() {
return new \Illuminate\Support\MessageBag;
});
确保您的服务提供商已注册。
您现在可以使用以下方法在中间件中调用它:
$logBag = App::make('my.logging');
请参阅API 文档了解如何使用消息包。