551просмотров
16.9%от подписчиков
19 марта 2026 г.
questionScore: 606
❓ Что такое Dependency Injection? DI — паттерн, при котором зависимости класса передаются извне, а не создаются внутри. // Плохо — жёсткая связанность:
class OrderService { private $mailer; public function construct() { $this->mailer = new SmtpMailer(); // зависимость зашита внутри }
} // Хорошо — DI:
class OrderService { public function construct(private MailerInterface $mailer) {}
} Зачем: ✔️ Легко подменить реализацию (например, для тестов — MockMailer)
✔️ Классы не знают о конкретных реализациях (зависимость от абстракции)
✔️ Код легче тестировать, поддерживать, расширять DI Container (Symfony, Laravel) автоматизирует создание объектов и внедрение зависимостей по всему приложению.