2015-08-12 1 views
2

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

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

+0

Вы можете создать свою собственную глобальную «переменную» как привязку IoC, например экземпляр MessageBag. – Luceos

+0

@ Luceos Как это может быть реализовано в L5.1 Большинство примеров относятся к более старым версиям Laravel – Saqib

+0

Думаю, вам нужна лучшая стратегия ведения журнала. –

ответ

1

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

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

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

Теперь вы можете назвать это в ПО промежуточного слоя с помощью:

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

Смотрите API documentation о том, как использовать сообщение сумку.