В последние несколько недель я много читал о внедрении зависимостей, инверсии, методах, IoC и т. Д. И т. Д. Хотя я понимаю, что до сих пор не могу получить некоторые вещи.
Допустим, у нас есть контроллер, который должен подписаться на какую-то услугу. Нам нужно следующее:
Это сложная задача, и если мы будем следовать Skinny Controller и Fat Model, это будет сложно. Многие разработчики также утверждают, что если у вас более 4 зависимостей, вы должны упростить свои классы и следовать одному принципу ответственности. Это приносит мне много вопросов.
Вы можете сделать свою работу намного проще, используя Laracasts / Commander, основанный на командах.
Также оформить заказ Джеффри Уэй Командир (https://laracasts.com/search?q=commander&д-где = уроки).
Ваш контроллер будет выглядеть так:
$this->execute(New SubscribeUserCommand($email, $data1, $data2))
который вызывает метод дескриптора SubsribeUserCommandHandler. Команда — это простой объект данных, содержащий все, что нужно методу-методу.Commander также настоятельно рекомендует вам работать с событиями для запуска электронной почты или уведомлений …
UPS:
Вниз:
— Больше классов и предложений, необходимых для его настройки
Надеюсь, это поможет или, по крайней мере, даст вам представление о том, как решить вашу проблему. Я использую этот метод в моем проекте, где пользователи регистрируются, получают приветственные письма, роли … мой контроллер имеет длину около 5 строк, остальное находится внутри команд и обработчиков команд
Других решений пока нет …