По нажатию на кнопку происходит много действий, изза чего код экшна контроллера сильно раздувается. В Yii нет реализованного уровня сервиса по умолчанию (уровень-прослойка между Контроллером и Моделью).
В контроллере у меня допустим происходит обработка нажатий кнопки, обращение к разным моделям, загрузка новостей из гугла? поделитесь своим стилем написания плизз
тут напрашивается выносить часть функционала за пределы контроллера? Для этой цели я думаю создать каталог protected/services - и туда выносить функционал. Сервис должен вызываться из логики, а уже модель - из сервиса.
А как вы делаете? что если очень много кода должно быть выполнено в экшне? как вы решаете эту проблему. Спасибо!
Тут очень много вариантов все зависит от конкретного проекта, его архитектуры и задач… так никто точного ответа не даст.
у примеру можно использовать виджеты. можно же какие-то методы делать приватными к которым обращаться из разных экшенов или видов, но это в пределах одного контроллера.
можно писать расширения к которым уже можно иметь доступ из разных контроллеров…
В общем все сильно зависит от выбранной архитектуры.