1

我想为我的应用程序构建一个可扩展的模型,其中第 3 方开发人员可以动态地将字段添加到我的模型中,而无需修改我的模型本身。我认为这可以通过“X 有 Y”来完成,其中字段 X 未在实体 Y 中指定。因此,第 3 方开发人员只需将他们的实体放在文件夹中并让 Y 发现它。让我举一个更具体的例子:

User
- Id
- Name

假设我想在用户有很多帖子的地方添加集合帖子。如果不向用户模型添加 Posts 字段,我怎么能做到这一点。我一直在阅读有关单向 OneToMany 等内容,但不确定这是否会使我的模型易于扩展?你们将如何尝试实现这一目标?

4

1 回答 1

2

解析目标实体侦听器允许您在运行时重新定义关联。它基本上允许您映射如下内容:

@ORM\ManyToOne(targetEntity="My\Namespace\UserInterface")

如您所见,将接口映射为目标实体没有多大意义。当您告诉必须将每个My\Namespace\UserInterface都替换为Other\Namespace\User参考时,它变得非常有用。

这将允许您的其他开发人员替换关联对象的实现,仅实现其接口,然后在某处设置配置键以仅在需要时覆盖您的映射。

即使没有接口,它也可以工作,但我强烈建议使用由合同定义的清晰 API。

于 2013-02-09T16:47:44.400 回答