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