Twig:渲染控制器 vs 宏

4
我想知道在twig中渲染控制器和使用宏之间哪种方法最好,例如我们有一个页面,在该页面中呈现一个带有评论的帖子。
  • 一方面,我们可以在显示帖子的控制器中加载评论并将其作为参数传递给twig宏来呈现评论列表。
  • 另一方面,我们可以创建一个控制器,以帖子作为参数,并将其呈现为Twig显示的帖子。
哪种方法是最佳的?我正在使用Symfony2。
2个回答

2
我认为根据您提供的细节,构建处理显示的宏的第一种选项会更好。原因如下:
通过将评论与帖子一起传递到Twig模板中,在查看模板时(作为开发人员),所有内容都被封装并且显得合乎逻辑。该特定的Twig模板处理该页面的所有布局,并且由于评论列表与内容相关联,因此模板只需循环遍历评论并使用宏来显示每个项目即可。控制器也应该很简单,因为它只查询评论数据库,然后将其传递给Twig。另一个好处是该宏还可以轻松地在其他页面上重复使用。虽然控制器也可以重复使用,但可能不太容易。
这种方法的主要注意事项是,如果需要对获取评论进行大量逻辑处理,则最好创建一个新的控制器以避免使主控制器混乱不堪。
如果您只想向某些用户显示评论,则将帖子作为参数传递给单独的控制器会更好。这将允许控制器确定用户是否有权查看评论,然后将它们返回到Twig模板并在需要时显示它们。虽然理论上Twig也可以做到这一点,但最好将其保留在控制器中。

0
最好使用TwigExtension,定义一个获取评论的函数。 此外,还有一些文章关于渲染控制器性能问题...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接