Service container
Сервис-контейнер (service container, контейнер служб) – инструмент для управления зависимостями классов и выполнения внедрения зависимостей (DI).
Внедрение зависимостей – означает, что зависимости классов «вводятся» в класс через конструктор в виде аргументов или, через методы-сеттеры. При создании класса или вызове методов фреймворк смотрит на список аргументов и, если нужно, создаёт экземпляры необходимых классов и сам подаёт их на вход конструктора или метода.
Service provider
Сервис-провайдер – класс, который загружается на этапе построения приложения. Через провайдеры подключаются все службы приложения и определяют его функционал.
Все сервис-провайдеры регистрируются в файле конфигурации config/app.php
. Этот файл содержит массив providers
, в котором можно перечислить имена классов. По умолчанию в этом массиве перечислены основные сервис-провайдеры Laravel. Эти поставщики загружают основные компоненты Laravel, такие, как почтовая подсистема, очереди, кеш и другие.