Поставщики услуг для laravel
Поставщики услуг являются центральным местом при начальной загрузке приложений Laravel.Ваше собственное приложение, а также все основные сервисы Laravel загружаются через сервис-провайдеров.
Но что мы подразумеваем под «загрузкой»?В общем, мы имеем в виду регистрацию вещей, включая регистрацию привязок сервисных контейнеров, прослушивателей событий, промежуточного программного обеспечения и даже маршрутов.Поставщики услуг являются центральным местом для настройки вашего приложения.
Если вы откроете файл config / app.php, включенный в Laravel, вы увидите массив поставщиков.Это все классы поставщика услуг, которые будут загружены для вашего приложения.Конечно, многие из них являются «отложенными» поставщиками, то есть они будут загружаться не при каждом запросе, а только тогда, когда услуги, которые они предоставляют, действительно необходимы.
Представьте, что вы создали класс, который требует нескольких зависимостей ив общем, вы используете это так:
$foo = new Foo(new Bar(config('some_secret_key')), new Baz(new Moo(), new
Boo()), new Woo('yolo', 5));
это выполнимо, но вы не захотите выяснять эти зависимости каждый раз, когда пытаетесь создать экземпляр этого класса.Вот почему вы хотите использовать сервис-провайдера, в котором метод регистра позволяет определить этот класс следующим образом:
$this->app->singleton('My\Awesome\Foo', function ($app) {
return new Foo(new Bar(config('some_secret_key')), new Baz(new Moo(), new
Boo()), new Woo('yolo', 5));
});
Таким образом, если вам нужно использовать этот класс, вы можете просто напечатать подсказку в контроллере (контейнер выяснит это) или запросите его вручную, например
$foo = app(My\Awesome\Foo::class). Isn't that easier to use? ;)
ниже. Link поможет вам написать собственных поставщиков услуг, зарегистрировать их и использовать в приложении Laravel.
https://laravel.com/docs/5.7/providers