(Symfony2)拆分/组循环模板和控制器功能

时间:2014-12-12 10:08:13

标签: php symfony doctrine-orm

我为基于Symfony2,Doctrine等的小型项目管理工具创建了一个后端。

我有一些输出,每个页面都相同,如用户列表,日志列表。所有这些东西都在每一页上输出。

目前我在每个控制器中都有输出它的代码。所以我的每个控制器都有一个相同的代码。模板中的内容也一样。

是否有可能超出这些代码片段?

我希望将这些经常重复的部分放在一个文件中 - 将PHP代码放在一个文件中,例如"全局函数"和twig的东西可能在父模板中,如base.html.twig模板。

我如何管理它以在我的代码中获得某种整理?

提前感谢您的帮助,

马文

2 个答案:

答案 0 :(得分:1)

可能另一种方法是创建TwigExtension并创建一个函数,并在模板中使用它们(

twig中的最终代码:

<div>
   {{ userlists() }}

   or 

   {{ userlogs() }}
</div>

答案 1 :(得分:0)

就像在best practices for Symfony2中所说的那样,控制器应该尊重模式 facade 。这意味着您的所有业务代码都不应该在您的控制器中。你会问我:&#34;那么在哪里?&#34;。

Symfony2提供了一种开发大型OOP架构的好方法,这要归功于它的依赖注入机制。它使用services(模式SOA)。您应该为业务代码的每个技术/功能可识别部分使用一个服务。依赖注入可以帮助您保持低耦合类,以便拥有更可维护,可扩展和可测试的应用程序。

我认为您已经在控制器中使用了这样的服务:

$this->get('doctrine');