Задать вопрос
@D3lphi

В каком месте mvc системы должен находиться шаблонизатор?

Пишу mvc систему на php. Возник вопрос: куда "пихать" класс-шаблонизатор. Есть мысль, что можно сделать его трейтом и подключить к контроллеру. Или нет, ведь шаблонизатор, вроде как, к представлению относиться? Подскажите.
  • Вопрос задан
  • 373 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1. шаблонизатор - это просто компонент. Они ничего не знает о MVC и прочем булшите
2. шаблонизатор нужен там, где формируется view. Вы можете крутиться как хотите, но view на бэкэнде пассивно (это http ответ) в подавляющем большинстве реализаций (даже в ADR от которого нынче писают кипятком), а это значит что формироваться view будет в контроллере. Отсюда делаем вывод что шаблонизатор должен дергаться в контроллере а такого компонента как view у нас просто нет. Возможны хэлперы которые помогают формировать этот самый view но не более.
3. управление зависимостями не входит в зону ответственности MVC. Оно обычно где-то сверху, тут можно заюзать Dependency Injection (только готовый контейнер если, свой не пишите).
4. трейты в контроллерах нормальная тема просто потому что на код контроллеров нам должно быть плевать с высокой колокольни. Если вам не плевать на код контроллеров - возможно вы там делаете что-то чего контроллеры делать не должны. Ну и опять же это будет трейт который будет делегировать задачу шаблонизатору а не реализовывать его.
5. что-то мне подсказывает что "модель" в вашей системе координат это какой-нибудь класс для работы с базой данных. Если так - вы не поняли зачем вообще вводится это разделение.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
LenovoId
@LenovoId
svg, css,js
Если не ошибаюсь то во view.
Ответ написан
Комментировать
okwinza
@okwinza
PHP Developer
Туда же, куда бы вы запихнули, скажем, класс для работы с базой.
Отдельным сервисом. Трейты нужны немного для другого.
Ответ написан
Ваш ответ на вопрос

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

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