我想为我的应用程序构建一个可扩展的模型,其中第三方开发人员可以动态地向我的模型添加字段而无需修改我的模型本身。我认为这可以通过“X有一个Y”来完成,其中字段X没有在实体Y中指定。因此第三方开发人员可以简单地将他们的实体放在一个文件夹中并让Y发现它。让我举一个更具体的例子:
User
- Id
- Name
让我们说我想添加用户有很多帖子的集合帖子。如何在不向用户模型添加帖子字段的情况下执行此操作。我一直在阅读Unidirectional OneToMany等,但不确定这是否会让我的模型易于扩展?你们将如何尝试实现这一目标?
答案 0 :(得分:2)
解析目标实体侦听器允许您在运行时重新定义关联。它允许您基本上映射如下内容:
@ORM\ManyToOne(targetEntity="My\Namespace\UserInterface")
如您所见,将接口映射为目标实体没有多大意义。当您告诉必须用My\Namespace\UserInterface
引用替换每个Other\Namespace\User
时,它变得非常有用。
这将允许其他开发人员替换关联对象的实现,仅实现其接口,然后在某处设置配置键以仅在需要时覆盖映射。
即使没有接口也能正常工作,但我强烈建议使用合同定义的明确API。