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

Php Laravel 5.1:中间件终止函数使用的全局变量,php,laravel,laravel-5.1,laravel-middleware,Php,Laravel,Laravel 5.1,Laravel Middleware,我编写了一个中间件终止函数,它将在请求执行期间收集的所有日志发送到外部日志服务器。这些日志主要收集在helper函数中,helper函数不能直接访问请求对象,当从控制器调用时,将请求作为参数发送给helper函数会使我的代码很难看 在Laravel 5.1中,是否有一种干净的方法可以使用全局变量来存储所有日志,以供terminate函数稍后使用?如果您想使用某种全局可用的消息包。您可以在服务提供商注册方法中执行以下操作: $this->app->singleton('my.loggi

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


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

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

$this->app->singleton('my.logging', function() {
    return new \Illuminate\Support\MessageBag;
});
确保您的服务提供商已注册

现在,您可以使用以下方法在中间件中调用此功能:

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

请参阅有关如何使用消息包的说明。

您可以创建自己的全局“变量”作为IoC绑定,例如MessageBag实例。@Luceos如何在L5.1中实现此功能大多数示例适用于较旧版本的LaravelI。我认为您需要更好的日志记录策略。