Глоссарий

Dependency Injection

Dependency Injection (DI) — паттерн, при котором объект получает свои зависимости извне, а не создаёт их сам. Вместо new Mailer() внутри класса — Mailer $mailer в конструкторе. Класс лишь объявляет, что ему нужно.

Почему это важно

Класс, который сам создаёт зависимости, жёстко привязан к их конкретным реализациям. DI позволяет подменять реализации — например, в тестах заменить реальный почтовый клиент на фейковый — без изменений в коде класса.

IoC-контейнер

Большинство фреймворков имеют встроенный контейнер, который автоматически резолвит зависимости: читает конструктор класса, находит зарегистрированные реализации интерфейсов и передаёт их. Вы описываете «что нужно» — контейнер решает «где это взять».

Три способа инъекции