0

I have some legacy code here using serializer 1.x that needs to be updated to PHP8 - so to serialzer 3.x.

The problem is the old code uses> serializer->getMetadataFactory() to dynamically override subitem tyes like this:

/** @var \JMS\Serializer\Metadata\PropertyMetadata $itemsMetadata */
$itemsMetadata = $this->serializer->getMetadataFactory()->getMetadataForClass(Content::class)->propertyMetadata['items'];
$itemsMetadata->setType($type);

Where $type is something like "array<" . My\MyModel::class - ">"

This was overriding defined item type from yaml:

Vendor\Package\Persistence\HATEOAS\Content:
    exclusion_policy: ALL
    properties:
        items:
            # this gets overridden dynamially
            type: array

Since getMetadataFactory() is gone and also type param changed - I could not figure out how to get this done with serializer 3.x.

What I get now is subitems beeing from type array instead of My\Model

Tobias Gaertner
  • 1,155
  • 12
  • 30

0 Answers0