Я хочу знать, что является лучшим подходом между рендерингом контроллера в ветке или использованием макроса. Например, у нас есть страница, где мы публикуем пост с его комментариями.
Какой из них лучший подход? я использую symfony2
Я бы сказал, что первый вариант построения макроса для управления отображением будет немного лучше, учитывая детали, которые вы предоставили.
Вот почему:
Передавая комментарии с постом в шаблон Twig, все инкапсулируется и выглядит логичным при просмотре шаблона (как разработчик). Этот конкретный шаблон Twig обрабатывает все макеты для этой страницы, и, поскольку список комментариев связан с содержимым, логично, что шаблон просто перебирает комментарии и использует макрос для отображения каждого элемента. Контроллер также должен быть простым, поскольку он просто запрашивает в базе данных комментарии, а затем передает их Twig. Еще одним преимуществом является то, что макрос также может быть легко повторно использован на других страницах. Несмотря на то, что контроллер также можно использовать повторно, он, вероятно, будет не таким простым.
Главное предостережение при таком подходе в том, что если вам нужно проделать большую логику с получением комментариев, то было бы лучше создать новый контроллер, чтобы не загромождать основной.
Один из основных вариантов использования, когда было бы лучше передать сообщение в качестве аргумента отдельному контроллеру, был бы, если вы хотите показывать комментарии только определенным пользователям. Это позволило бы контроллеру определить, разрешено ли пользователю просматривать комментарии, а затем вернуть их в шаблон Twig и отобразить их, если это так. Хотя Twig теоретически может сделать это, кажется, лучше хранить это в контроллере.
Лучше использовать TwigExtension, определить функцию, которая выбирает комментарии.
Также есть некоторые посты множество проблем производительности рендеринга контроллера …