Laravel фасады и сервис провайдеры
Last updated
Last updated
Создадим наш “Сервис” 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