Doctrine orm 在Symfony/Doctrine 2中从外部扩展捆绑包?

Doctrine orm 在Symfony/Doctrine 2中从外部扩展捆绑包?,doctrine-orm,bundle,symfony,extend,Doctrine Orm,Bundle,Symfony,Extend,据我所知,如果您想从另一个bundle扩展bundle,而不在它们之间创建依赖关系或使用任何OO继承概念,那么使用Symfony和Doctrine2是不可能的。这证实了我的第一个想法: “由于原则的工作方式,不可能覆盖捆绑包的实体映射。”(来源:) 唯一存在的方法并没有给我满足感:使用SuperMappedClass 例如,我想要的是: 一只手在一个独立的包中拥有联系人(CRMBundle) 在另一个(EmailBundle)中的另一个独立捆绑包中包含EmailMessages “神奇地”添加联

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

“由于原则的工作方式,不可能覆盖捆绑包的实体映射。”(来源:)

唯一存在的方法并没有给我满足感:使用SuperMappedClass

例如,我想要的是:

  • 一只手在一个独立的包中拥有联系人(CRMBundle)
  • 在另一个(EmailBundle)中的另一个独立捆绑包中包含EmailMessages
  • “神奇地”添加联系人::$emailMessages属性+getter/setter+twig模板(如果我使用的是Sonata,这不是必需的)+DatagridMapper/FormMapper中的字段。。。当EmailBundle与Contact/CRMBundle同时出现在应用程序中时
  • 反面同样的东西(电子邮件)
  • 目前,正如官方Symfony doc所说,这似乎是不可能的。 在这一点上,谁能证实“最先进的技术”呢

    事实上,我们正在进行这方面的工作,我想我们即将接触到一些新的和有趣的东西,在这一点上对每个人来说。。。但我不希望我们在没有必要的情况下处理这个问题


    提前感谢,

    基本上,您希望创建一些“动态”属性。没有办法做到这一点。
    依我看,EmailMessages和Contact都是独立的实体,然后它们在两个不同的捆绑包中,彼此不认识(您仍然可以使用电子邮件地址作为键从一个到另一个进行查询),或者它们是相同的“聚合”的一部分。

    谢谢您的回答。。。我很确定我们能找到一种方法去做那些看似不可能的事情。我们将致力于此,做一些事情,然后如果我们成功,为社区写一些东西,并(如果可能的话)发布一些代码。IMO的问题不是技术性的——当然有方法——而是建模。或者你有一个模型或者另一个模型,但是有一些动态/神奇的东西听起来并不好。为什么听起来不好呢?从实体包外部访问实体的定义以动态扩展它是非常有用的。。。它将提供一个“轻松扩展模式”,允许设计可扩展、通用且同时独立的东西。我刚刚在条令的Github存储库中打开了一个问题: