Laravel 5.1: 中间件终止函数使用的全局变量

Laravel 5.1: Global variable to be used by middleware terminate function

我编写了一个中间件终止函数,它将在请求执行期间收集的所有日志发送到外部日志服务器。这些日志主要收集在无法直接访问请求对象的辅助函数中,当从控制器调用时将请求作为参数发送给辅助函数会使我的代码变得难看。

有没有一种干净的方法可以在 Laravel 5.1 中有一个全局变量,我可以在其中存储所有日志以供稍后由终止函数使用?

如果您想使用某种全球可用的消息包。您可以在您的服务提供商注册方法中执行以下操作:

$this->app->singleton('my.logging', function() {
    return new \Illuminate\Support\MessageBag;
});

确保您的服务提供商已注册。

您现在可以在您的中间件中调用它:

$logBag = App::make('my.logging');

请参阅API documentation了解如何使用消息包。