如何使用xml映射指定什么扩展了doctrine mappedsuperclass中的内容

时间:2015-01-07 18:28:48

标签: php xml doctrine-orm mappedsuperclass

我试图弄清楚超类映射在Doctrine2中是如何工作的,我有一些例子可以使用,但是我一直在使用xml映射来创建我的实体,然后又使用数据库架构。我找到了一个展示“延伸”的例子。 '实体的参数' tag,但在当前架构中似乎不支持它。

如何告诉XML驱动程序哪些类应该扩展映射的超类?

SW

1 个答案:

答案 0 :(得分:0)

  

如何告诉XML驱动程序哪些类应该扩展映射的超类?

您不必:)

您可以简单地创建一个抽象类(让它命名为My\First\BaseClass)并在XML中定义一个Mapped Superclass:

<?xml version="1.0" encoding="UTF-8"?>
<doctrine-mapping
    xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping
        http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd"
>

    <mapped-superclass name="My\First\BaseClass">

        <!-- fields, etc -->

    </mapped-superclass>

</doctrine-mapping>

接下来有一个Entity类扩展这个Mapped Superclass。你甚至可以有一个Entity类来扩展Mapped Superclass,而后者又扩展了另一个Mapped Superclass。

重点是:Doctrine足够聪明,可以遍历所有XML映射文件,以便根据类继承确定完整的映射元数据集。您无需在XML中指定图形。