Как указать, что расширяет то, что в доктрине сопоставленного суперкласса с сопоставлением XML

Я пытаюсь выяснить, как работает отображение суперкласса в Doctrine2, и у меня есть несколько примеров для работы, но я использовал отображение xml для создания своих сущностей, а затем, в свою очередь, схемы базы данных. Я нашел один пример, который показал параметр ‘extends’ для тега ‘entity’, но он не поддерживается в текущей схеме.

Как вы говорите драйверу XML, какие классы должны расширять сопоставленный суперкласс?

SW

1

Решение

Как вы говорите драйверу XML, какие классы должны расширять сопоставленный суперкласс?

Вам не нужно 🙂

Вы можете просто создать абстрактный класс (назовем его My\First\BaseClass) и определите сопоставленный суперкласс в XML:

<?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 расширяет этот сопоставленный суперкласс. Вы даже можете иметь класс Entity, расширяющий Mapped Superclass, который, в свою очередь, расширяет еще один Mapped Superclass.

Дело в том, что Doctrine достаточно умен, чтобы обойти все файлы сопоставления XML, чтобы определить полный набор метаданных сопоставления на основе наследования классов. Вам не нужно указывать график в XML.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]