我正在使用Symfony2为我的公司开发一个小型CMS。我真的很喜欢这个框架。我喜欢表单类并重用它们(毕竟这些都是关于表单的。)
但是(是的,有一个“但是”)我感觉我正在做同样的事情,复制并粘贴所有控制器。我们讨厌的代码重复。将所有业务逻辑移至Services以及Doctrine中的表单,事件和持久操作,我的所有控制器都执行相同的操作:
$this->get('mycompany.repository.entity')
我的意思是控制器操作完全相同,只需更改几个字符。
如何在控制器中使用Symfony2 DRY ?也许控制器作为服务(我几天前才发现的一个概念)可能会有所帮助吗?
编辑:相关问题(针对Boo建议的第一个想法):Symfony2 how to redirect to an action without hardcoding route name?
答案 0 :(得分:2)
有很多方法可以获得更干的代码库:
我想在考虑它时还有更多的方法。
我发现想法1非常优雅,而3也有一些优势。第二种方法是一种愚蠢的行为,特别是当你再次需要公开的代码时(即使它会少得多,它远非最优)。创意1与OO理念同步,并且很好地传达了它的意图。总结一下,我会使用BaseController!