避免代码重复的最佳做法(symfony2)

时间:2014-04-12 14:16:36

标签: php oop symfony

我有四个REST控制器,完全相同的六种方法。它们之间的唯一区别是它们正在使用的实体。

我正在考虑使用这些方法的一些先例抽象控制器,并且有一个属性当然是实体。每个REST控制器都将扩展此抽象控制器,并仅覆盖此属性。

这是我的想法,但我不确定这是否是最佳做法,尤其是在Symfony2中。

1 个答案:

答案 0 :(得分:0)

在我正在研究Symfony2和FOSRestBundle的项目中,我们有完全相同的情况。

我们设法将所有内容都放到扩展FOSRestController的基本控制器类中,并由所有其他控制器扩展。如果您使用的是sensio / framework-extra-bundle,则甚至不需要编写代码来获取单个实体。我们还使用MySQL和Elastic Search的混合配置,基本控制器类实现查询ElasticSearch的方法,包括ACL信息,以便逻辑主要在基本控制器中。