Twig:渲染控制器与宏
Twig: render controller vs macro
我想知道在 twig 中渲染控制器或使用宏之间最好的方法是什么。例如,我们有一个页面,我们在其中呈现 post 和他的评论。
- 一方面,我们可以在显示 post 的控制器中加载评论,并将其作为参数传递给 twig 宏以渲染评论列表
- 另一方面,我们可以创建一个控制器,将 post 作为参数并将其呈现为显示 post
的树枝
哪种方法最好?我正在使用 symfony2
我想说,考虑到您提供的详细信息,构建宏来处理显示的第一个选项会好一些。
原因如下:
通过将带有 post 的注释传递给 Twig 模板,一切都被封装起来并且在查看模板时(作为开发人员)看起来合乎逻辑。该特定的 Twig 模板处理该页面的所有布局,并且由于评论列表与内容相关,因此模板将简单地遍历评论并使用宏来显示每个项目是合乎逻辑的。控制器也应该很简单,因为它只是查询数据库中的评论,然后将它们传递给 Twig。另一个好处是宏也可以很容易地在其他页面上重复使用。虽然控制器也可以重复使用,但可能不太容易。
这种方法的主要警告是,如果您必须为获取评论做很多逻辑工作,那么最好创建一个新控制器以避免使主控制器混乱一顶。
一个主要的用例是,如果您只想向某些用户显示评论,最好将 post 作为参数传递给单独的控制器。这将允许控制器确定是否允许用户查看评论,然后 return 将它们添加到 Twig 模板并在允许时显示它们。虽然 Twig 理论上可以做到这一点,但将其保留在控制器中似乎更好。
最好使用 TwigExtension,定义一个获取评论的函数。
还有 some posts 关于渲染控制器的性能问题...
我想知道在 twig 中渲染控制器或使用宏之间最好的方法是什么。例如,我们有一个页面,我们在其中呈现 post 和他的评论。
- 一方面,我们可以在显示 post 的控制器中加载评论,并将其作为参数传递给 twig 宏以渲染评论列表
- 另一方面,我们可以创建一个控制器,将 post 作为参数并将其呈现为显示 post 的树枝
哪种方法最好?我正在使用 symfony2
我想说,考虑到您提供的详细信息,构建宏来处理显示的第一个选项会好一些。
原因如下:
通过将带有 post 的注释传递给 Twig 模板,一切都被封装起来并且在查看模板时(作为开发人员)看起来合乎逻辑。该特定的 Twig 模板处理该页面的所有布局,并且由于评论列表与内容相关,因此模板将简单地遍历评论并使用宏来显示每个项目是合乎逻辑的。控制器也应该很简单,因为它只是查询数据库中的评论,然后将它们传递给 Twig。另一个好处是宏也可以很容易地在其他页面上重复使用。虽然控制器也可以重复使用,但可能不太容易。
这种方法的主要警告是,如果您必须为获取评论做很多逻辑工作,那么最好创建一个新控制器以避免使主控制器混乱一顶。
一个主要的用例是,如果您只想向某些用户显示评论,最好将 post 作为参数传递给单独的控制器。这将允许控制器确定是否允许用户查看评论,然后 return 将它们添加到 Twig 模板并在允许时显示它们。虽然 Twig 理论上可以做到这一点,但将其保留在控制器中似乎更好。
最好使用 TwigExtension,定义一个获取评论的函数。 还有 some posts 关于渲染控制器的性能问题...