Laravel фасады и сервис провайдеры

Создадим наш “Сервис” UserService по пути app/Services/UserService.php

Создадим для него фасад UserService.php по пути app/Services/Facade/UserService.php

В AppServiceProvider.php в методе register() пропишем биндинг нашего класса UserService.

То что ниже значит что если нужно разрешить зависимость с ‘userservice’, то контейнер должен создать экземпляр класса App\Services\UserService и разрешить все его зависимости (в данном случае передать ему экземпляр Request).

Дальше описано что если конструктору класса App\Services\UserService понадобится аргумент с именем $appName то дать ему значение config(‘app.name’);

Теперь благодаря сервис провайдерам, контейнер сам создаёт нам экземпляры класса App\Services\UserService и разрешит все его зависимости, например если мы запросим его в аргументе метода контроллера.

А благодаря фасаду, мы можем обратиться к нестатическим методам экземпляра (созданного контейнером) статически через фасад App\Services\Facade\UserService

Last updated