如何在Symfony中为Doctrine创建一个包含未知子类的空超类?

时间:2013-02-08 06:49:47

标签: inheritance symfony doctrine-orm

据我所知,如果我想使用继承,则需要在supperclass映射信息中列出所有子类。

manual州:

/**
 * @Entity
 * @InheritanceType("SINGLE_TABLE")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"person" = "Person", "employee" = "Employee"})
 */
class Person
{
    // ...
}
  

@ InheritanceType,@ DisciminatorColumn和@DiscriminatorMap必须   在作为映射实体一部分的最顶层类上指定   层次结构。

由于我正在开发一个将被多个应用程序重用的symfony包,这是一个主要问题。我想提供可以通过应用程序扩展的超类。这意味着在实现超类时我们不知道子类。

问题Creating portable Bundles with extendable entities in Symfony2正在解决同样的问题。

这里的问题是:我有什么选择可以解决这个限制?

在我需要的区域是一个订单。应用程序应该有可能实现它自己的订单项子类型。我想出了这个解决方案,但这需要很多额外的类来获得类似继承的东西。

http://www.gliffy.com/pubdoc/4293547/L.png

我很乐意看到更好/更短的解决方案。

0 个答案:

没有答案