Laravel 5.1: глобальная переменная, используемая функцией завершения промежуточного программного обеспечения

Я написал функцию завершения промежуточного программного обеспечения, которая будет отправлять все журналы, собранные во время выполнения запроса, на внешний сервер журналов. Эти журналы собираются в основном во вспомогательных функциях, которые не имеют прямого доступа к объекту запроса, и это сделало бы мой код уродливым для отправки запроса в качестве параметра вспомогательным функциям при вызове из контроллеров.

Есть ли чистый способ иметь глобальную переменную в Laravel 5.1, где я могу хранить все журналы, которые будут позже использоваться функцией завершения?

2

Решение

Если вы хотите использовать какую-то глобально доступную сумку для сообщений. Вы можете сделать следующее в вашем методе регистрации поставщика услуг:

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

Убедитесь, что ваш поставщик услуг зарегистрирован.

Теперь вы можете вызвать это в своем промежуточном программном обеспечении, используя:

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

Увидеть API документация о том, как использовать пакет сообщений.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]