Практическое применение DI в Laravel

197
30 марта 2017, 22:26

Есть ли открытые проекты в которых можно увидеть практическое применение DI? Ну или приведите конкретный пример как лучше использовать этот подход и где он нужен, а где это лишнее.

Answer 1

Самый простой пример это маршрут, когда твой метода контроллера перехватывает 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 {}
READ ALSO
Unity3d авторизация в WordPress (woocommerce)

Unity3d авторизация в WordPress (woocommerce)

Делаю авторизацию в приложении Unity для своего поднятого сайта (магазина) на WordPress(woocommerce)

254
Access denied for user ''@'localhost' при использовании пустого пароля

Access denied for user ''@'localhost' при использовании пустого пароля

Имеем стандартную форму подключения:

279