@sand_alkr
инженер-программист

Какой наилучший способ выводить определенные сущности на всех страницах, Symfony 2.3?

Например, на всех страницах мне нужны последние три новости. Простой путь - делать субзапрос из шаблона (например render у twig). Но это напрасная трата ресурсов. Другой путь - отдавать их параметрами из каждого action, но это попахивает бессмысленным дублированием кода, и тоже мне не нравится. Я начинал с использования KnpMenuBundle, который расширяет twig, позволяя достучатся до конструктора меню. Когда сущности стали усложняться, я стал переопределять вид меню в twig шаблонах и передавать дополнительные свойства как атрибуты элемента меню. Но оглянувшись, на то, что я наделал, я только могу грустно покачать головой. Думаю, ответ лежит где-то в области сервисов.
  • Вопрос задан
  • 2740 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
вы можете в шаблоне запросить какой-то определенный экшен контроллера. В результате будет сформирован новый запрос в appkernel с пометкой что это не master запрос, и ответ этого экшена будет выведен в нужное место шаблона.
symfony.com/doc/2.3/book/templating.html#embedding...
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HDApache
@HDApache
PHP программист
Я не знаком с Symfony но на YII я пишу в такой ситуации виджет. А что бы не дергать базу каждый раз использую тегированный кэш.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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