I\'ve an entity I usually serialize using the JMS Serializer bundle. I have to add to the serialization some fields that doesn\'t reside in the entity itself but are gathere
addData is deprecated so since 2.0.0, so we need to do it like this:
use JMS\Serializer\EventDispatcher\ObjectEvent;
class MySerializerHandler {
public function onPostSerialize(ObjectEvent $event)
{
/** @var MySpecialObjectType $object */
$myObject = $event->getObject();
$key = 'customDataKey';
$value = 'myvalue';
$event->getVisitor()->visitProperty(
new StaticPropertyMetadata('', $key, $value),
$value
);
}
}
services.yaml
services:
MySerializerHandler:
tags:
- { name: jms_serializer.event_listener, class: 'MySpecialObjectType', event: serializer.post_serialize, method: 'onPostSerialize' }
https://github.com/schmittjoh/serializer/blob/c9c82c841b8ebe682ca44972d64fded215f72974/UPGRADING.md#from-1130-to-200