Есть ли открытые проекты в которых можно увидеть практическое применение 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 {}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Делаю авторизацию в приложении Unity для своего поднятого сайта (магазина) на WordPress(woocommerce)
Имеем стандартную форму подключения: