在Symfony / Doctrine 2中从外部扩展束?

时间:2016-09-20 13:31:17

标签: doctrine-orm bundle symfony extend

据我所知,如果你想从另一个bundle扩展一个bundle,而不是在它们之间创建依赖关系或者使用任何OO继承概念,那么它还不可能与Symfony& Doctrine2。这证实了我的第一个想法:

“由于Doctrine的工作方式,不可能覆盖bundle的实体映射。” (来源:http://symfony.com/doc/current/bundles/override.html#entities-entity-mapping

唯一现有的方法并不令我满意:使用SuperMappedClasses ......

我想要的是,例如:

  1. 一手掌握联系人(CRMBundle)
  2. 在另一个独立捆绑包中使用EmailMessages(EmailBundle)
  3. 在ShowMapper中添加“魔法”Contact :: $ emailMessages属性+ getter / setter + twig模板(如果我使用的是Sonata,这不是强制性的)+ DatagridMapper / FormMapper中的字段...当EmailBundle时应用程序与Contact / CRMBundle同时出现在应用程序中。
  4. 背面的相同内容(电子邮件)
  5. 目前,正如Symfony官方官员所说,这似乎不可能。 任何人都可以在这一点上确认“最新技术”吗?

    事实上,我们正在努力解决这个问题,我认为我们即将在这一点上为每个人提供新的和有趣的东西......但我不希望我们在没有必要的情况下解决这个问题。< / p>

    提前致谢,

1 个答案:

答案 0 :(得分:1)

基本上,您想要创建一些“动态”属性。没有办法做到这一点。 IMO,无论是EmailMessages还是Contact都是分离的实体,然后它们分为2个不同的捆绑包,彼此不了解(您仍然可以使用电子邮件地址作为从一个到另一个查询的密钥),要么它们是,要么是它们的一部分相同的“聚合”。