哪个在Symfony2中更好:渲染控制器或包含模板?

时间:2015-08-21 11:30:51

标签: php symfony model-view-controller twig

我用Symfony2开发大学网站。除了我在Symfony几乎是新手。

索引页面由几个块组成:新闻,事件,照片等。所有对象都是从webservices中提取的,因此不会直接使用DB。

我想知道哪个更好:

  1. 在DefaultController中获取所有新闻,照片,...对象:indexAction 并将它们作为参数传递给index.html.twig
  2. 在index.html.twig中调用渲染(控制器(新闻:块))。和 NewsController依次获取对象和渲染 news_block.html.twig。
  3. 还有其他方式吗?我实际上是使用第二种方式,但我觉得它不好。
  4. 请给我建议。

1 个答案:

答案 0 :(得分:-1)

对于这个问题,不可能有一个完美的过时答案。两种方式都是Symfony中标准的编码方式。它是一种基于决策的方法,非常重要。

  1. 获取DefaultController中的所有新闻,照片,...对象:indexAction并将它们作为参数传递给index.html.twig - >当您为页面显示/加载的数据相对较少或属于单个模块/功能时。这样你就有了一个简单的过程 - 路线 - >控制器 - >枝条。简单而甜蜜的编码方式。

  2. 在index.html.twig中调用渲染(controller(新闻:块))。而NewsController依次获取对象并呈现news_block.html.twig。 - >当您的树枝/页面渲染大量组件或在一个操作中需要大量繁重时,请使用此方法。这将有助于您维护代码,因为您的树枝的每个部分都使用单独的控制器单独渲染。此外,这还将稍微改善网站的用户体验性能,因为最初使用最少的信息呈现树枝,然后每个单独的组件单独使用自己的控制器。