压倒主义实体

时间:2013-06-09 15:07:48

标签: symfony doctrine override extend entities

我正在尝试使用Doctrine 2实体在Symfony2上创建一个应用程序。我的问题是我应该有一个主要的应用程序,其中包含主要使用的功能和其他应用程序,它们将根据需要进行扩展。例如,我有一个UserInterface以及一个在主App中实现UserInterface的User。所有其他应用程序应该能够使用此用户,但是如果其中一个应用程序需要向该用户添加更多属性,则他可以覆盖用户类而无需更改其名称或函数调用。我已经用@MappedSuperClass阅读了关于教义的文档(没有解决我的问题),并在另一个问题中看到了一个实现,改变了驱动程序的实现,但我希望有另一个解决方案。对任何可以提供帮助的人都有好处。

1 个答案:

答案 0 :(得分:1)

我认为你要找的是Bundle Inheritance: http://symfony.com/doc/2.0/cookbook/bundles/inheritance.html

如果将Bundle B定义为A的Parent,则只要两个Bundles使用相同的命名空间/文件夹,Bundle A中的每个Resource都将覆盖Bundle B中的Resource。

我几天前用它来覆盖FOSUserBundle的控制器。