我想知道哪个是在树枝中渲染控制器或使用宏之间最好的方法.例如,我们有一个页面,我们用他的评论来发布帖子.
>一方面,我们可以在显示帖子的控制器中加载注释,并将其作为参数传递给树枝宏以转发注释列表
>另一方面,我们可以创建一个控制器,将帖子作为参数,并将其呈现为显示帖子的树枝
哪一个是最好的方法?我正在使用symfony2
最佳答案 我会说,根据您提供的详细信息,构建宏来处理显示的第一个选项会更好一点.
原因如下:
通过将帖子中的注释传递给Twig模板,在查看模板(作为开发人员)时,所有内容都被封装并显得合乎逻辑.该特定的Twig模板处理该页面的所有布局,并且由于注释列表与内容相关,因此模板将简单地遍历注释并使用宏来显示每个项目是合乎逻辑的.控制器也应该很简单,因为它只是在数据库中查询注释,然后将它们传递给Twig.另一个好处是宏也可以很容易地在其他页面上重复使用.虽然控制器也可以重复使用,但它可能不那么容易.
这种方法的主要警告是,如果你必须在获取注释时做很多逻辑,那么最好创建一个新的控制器以避免混淆主要的控制器.
如果您希望仅向某些用户显示评论,那么将帖子作为参数传递给单独的控制器会更好的一个主要用例.这将允许控制器确定是否允许用户查看注释,然后将它们返回到Twig模板并显示它们(如果是这样).虽然Twig理论上可以做到这一点,但最好将其保留在控制器中.