Что такое Dependency Inversion Principle (DIP)?

Ответ

Модули верхнего уровня не должны зависеть от модулей нижнего уровня; оба должны зависеть от абстракций. Абстракции не должны зависеть от деталей; детали - от абстракций.

// Плохо: контроллер зависит от конкретной реализации
class OrderController { public function __construct(private MySqlOrderRepo $repo) {} }

// Хорошо: зависимость от интерфейса
class OrderController { public function __construct(private OrderRepositoryInterface $repo) {} }

Резолв конкретной реализации - в конфигурации (DI-контейнер).

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.