Я написал функцию завершения промежуточного программного обеспечения, которая будет отправлять все журналы, собранные во время выполнения запроса, на внешний сервер журналов. Эти журналы собираются в основном во вспомогательных функциях, которые не имеют прямого доступа к объекту запроса, и это сделало бы мой код уродливым для отправки запроса в качестве параметра вспомогательным функциям при вызове из контроллеров.
Есть ли чистый способ иметь глобальную переменную в Laravel 5.1, где я могу хранить все журналы, которые будут позже использоваться функцией завершения?
Если вы хотите использовать какую-то глобально доступную сумку для сообщений. Вы можете сделать следующее в вашем методе регистрации поставщика услуг:
$this->app->singleton('my.logging', function() {
return new \Illuminate\Support\MessageBag;
});
Убедитесь, что ваш поставщик услуг зарегистрирован.
Теперь вы можете вызвать это в своем промежуточном программном обеспечении, используя:
$logBag = App::make('my.logging');
Увидеть API документация о том, как использовать пакет сообщений.
Других решений пока нет …