JohnDaniels
@JohnDaniels

Как правильно использовать ServiceProvider в laravel?

Не совсем понимаю зачем они нужны.

Например я делаю так
use App\Http\Controllers\Controller;
use App\Services\MyService ;

class MyController extends Controller
{
    protected $myService;

    public function __construct(MyService $myService)
    {
        $this->myService= $myService;
    }
}


и все работает.
Зачем тогда создавать свои сервис-провайдеры и указывать привязку в register() ?
  • Вопрос задан
  • 1051 просмотр
Пригласить эксперта
Ответы на вопрос 1
be_a_dancer
@be_a_dancer
Backend/Fullstack Developer
Вообще, желательно прочитать про паттерны, когда вы их применяете. Постараюсь коротко объяснить, хотя тут, конечно, нужно брать соответствующую литературу и документацию и изучать тему.

TL;DR

Сервис-провайдер - класс, который загружается первым во всем вашем приложении и позволяет настроить все. Дословно все. Маршруты, мидлвари и так далее. К примеру, те два файла роутинга, которые ты используешь в своем приложении загружаются в классе RouteServiceProvider.

Чуть подробнее. Сервис провайдеры являются ларавелевской имплементацией шаблона Dependency Injection. Они позволяют на этапе сборки приложения задать зависимости для дальнейшего их использования. Кроме того, сервис-провайдеры, непосредственно, собирают приложение. Любая библиотека для Laravel, которую вы найдете в интернете, начинается именно с сервис провайдера, который определяет политику загрузки всего модуля.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы