0

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

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

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

我正在考虑拆分代码以将业务逻辑保留在一个单独的类中,该类将扩展实体,为了更加清晰,例如拥有一个带有样板代码的实体文件夹和一个带有真实代码的 BusinessEntity 文件夹。

1)你认为这是一个好的设计模式吗?2) 能不费事就完成吗?

4

2 回答 2

1

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

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

只有 PHP >= 5.4 才支持特征。

于 2013-07-21T12:44:50.177 回答
0

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

于 2013-07-21T12:00:53.133 回答