Twig:渲染控制器与宏

时间:2015-03-10 14:50:14

标签: php symfony macros twig

我想知道哪个是在树枝中渲染控制器或使用宏之间的最佳方法。例如,我们有一个页面,我们用他的评论来发布帖子。

  • 一方面,我们可以在显示帖子的控制器中加载评论,并将其作为参数传递给树枝宏以转发评论列表
  • 另一方面,我们可以创建一个控制器,将帖子作为参数并将其渲染为显示帖子的树枝

哪一个是最好的方法?我正在使用symfony2

2 个答案:

答案 0 :(得分:2)

我想说,根据您提供的详细信息,构建宏来处理显示的第一个选项会更好一些。

原因如下:

通过将帖子中的注释传递给Twig模板,所有内容都被封装,并且在查看模板时(作为开发人员)显得合乎逻辑。该特定的Twig模板处理该页面的所有布局,并且由于注释列表与内容相关,因此模板将简单地遍历注释并使用宏来显示每个项目是合乎逻辑的。控制器也应该很简单,因为它只是在数据库中查询注释,然后将它们传递给Twig。另一个好处是宏也可以很容易地在其他页面上重复使用。虽然控制器也可以重复使用,但它可能不那么容易。

使用这种方法的主要警告是,如果你必须在获取注释时做很多逻辑,那么最好创建一个新的控制器以避免混淆主控器。

如果您希望仅向某些用户显示评论,那么将帖子作为参数传递给单独的控制器会更好的一个主要用例。这将允许控制器确定是否允许用户查看注释,然后将它们返回到Twig模板并显示它们(如果是这样)。虽然Twig理论上可以做到这一点,但最好将其保留在控制器中。

答案 1 :(得分:0)

更好地使用TwigExtension,定义一个获取注释的函数。 渲染控制器也存在some posts abount性能问题......