继承Doctrine模型以保持自动生成的代码与自定义代码分离:好主意?

时间:2013-07-21 11:54:19

标签: symfony doctrine-orm

我最近一直在做一些Symfony2项目,使用doctrine作为ORM。

让我烦恼的一件事是自动生成的代码/样板代码(字段定义,getter,setter,映射)和业务逻辑之间的实体混合。

你最终得到了大约600行代码实体文件,其中只有10%是业务逻辑(尽管当然很多业务逻辑通常都在Repository类中,但仍然如此)。

我正在考虑拆分代码以将业务逻辑保存在一个单独的类中,这样可以扩展实体,更加清晰,就像拥有带有样板代码的Entity文件夹和带有实际代码的BusinessEntity文件夹一样。

1)你认为这是一个好的设计模式吗? 2)可以毫无困难地完成吗?

2 个答案:

答案 0 :(得分:1)

我们已经扩展了EntityGenerator以生成特征而不是类。每个实体都是作为一个类生成的,只需导入包含所有样板代码的特征。这种方法有几个优点。

  • 您仍然可以生成实体并保持自定义业务逻辑不变
  • 所有生成的代码都与您的自定义代码完全分开。
  • 如果您正在使用表继承或扩展某个基本实体,您仍可以从另一个实体进行扩展。

仅支持PHP> = 5.4。

答案 1 :(得分:0)

我说你可以将实体存储库用于业务逻辑吗? http://www.masnun.com/2012/11/12/symfony2-doctrine-custom-entity-repositories.html