Использование дискриминаторов и групп для сериализации объектов - PullRequest
0 голосов
/ 12 октября 2019

Следующая информация взята из http://jmsyst.com/libs/serializer/master/reference/xml_reference и была изменена, чтобы показывать только части, относящиеся к дискриминаторам и группам. Предположим, ClassName extends ParentClassName.

  1. Почему discriminator-class применяется к ClassName, а не ParentClassName, как это показано в документах по аннотациям ? Что означает аннотация docs оператор " Аннотация @Discriminator должна применяться к наименее супертипу " означает?
  2. Как используется discriminator-groups? Как это связано с двумя другими вариантами использования groups в поле some-property?

.

<?xml version="1.0" encoding="UTF-8"?>
<serializer>
    <class name="Fully\Qualified\ClassName" discriminator-field-name="type" discriminator-disabled="false">
        <discriminator-class value="some-value">ClassName</discriminator-class>
        <discriminator-groups>
            <group>foo</group>
        </discriminator-groups>
        <property name="some-property" groups="foo,bar">
            <groups>
                <value>foo</value>
                <value>bar</value>
            </groups>
        </property>
    </class>
</serializer>
...