alestro
@alestro

Как избежать дублирования в контроллерах?

Суть в том, что для каждой страницы есть свой контроллер без какой либо иерархии наследования и базового абстрактного класса, в данном случае это классы типа \controllers\Имя страницы. Допустим \controllers\catalog отвечает за страницу каталога интернет магазина. И проблема в том, что есть код, который используется на всех страницах, например корзина товаров. И приходиться инициализировать общий код во всех экшенах и контролерах соответственно. Каким паттерном лучше всего решить данную проблему?
  • Вопрос задан
  • 215 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Каким паттерном лучше всего решить данную проблему?


Вы для начала не поняли зачем нужен контроллер. У вас логика "модели", то есть нашего приложения вытекла в контроллер, раз возникает дублирование. Контроллеры нужны для снижения связанности между UI (HTTP в нашем случае, шаблонизаторы и прочее) и непосредственно приложением. В вашем же случае у вас по сути нет того самого промежуточного слоя и контроллеры являются частью приложения, без которого оно не работает.

В целом при дублировании обычно все решается очень просто - общую реализацию выносим в общую зависимость. Отдельный класс который делает дела и который юзают наши контроллеры. Сервис.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы