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

时间:2015-08-12 12:26:41

标签: php laravel laravel-5.1 laravel-middleware

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

在Laravel 5.1中是否有一个干净的方法可以存储全局变量,我可以存储以后通过terminate函数使用的所有日志?

1 个答案:

答案 0 :(得分:1)

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

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

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

现在可以使用以下方法在中间件中调用它:

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

有关如何使用信息包的信息,请参阅API documentation