Есть ли открытые проекты в которых можно увидеть практическое применение DI? Ну или приведите конкретный пример как лучше использовать этот подход и где он нужен, а где это лишнее.
Самый простой пример это маршрут, когда твой метода контроллера перехватывает id в маршруте и преобразовывает его в необходимый класс
Rote::get('/user/{user}','UserController@show');
UserController.php
public function shop(App\User $user) {
//переменная User сразу содержит необходимый экземпляр
}
А вообще в Ларавел сейчас они везде: Even, Listeners и в других часто используемых классах, это ничто иное как внедрение одного класса в другой класс через конструктор или сеттером
Пример:
class SendingService {
private $sendService;
public function __construct(Sending $smsService) {
$this->sendService = $smsService;
}
public function send($message) {
return $this->sendService->send($message);
}
}
interface Sending {
public function send($message);
}
class SmsService implements Sending {}
class EmailService implements Sending {}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники