JMSSerializerBundle icon indicating copy to clipboard operation
JMSSerializerBundle copied to clipboard

adapter to symfony serializer?

Open themark147 opened this issue 1 year ago • 2 comments

Hi,

Symfony 6.3 brings great feature https://symfony.com/blog/new-in-symfony-6-3-mapping-request-data-to-typed-objects and new RequestPayloadValueResolver

Im thinking about create some adapter from JMS serializer to Symfony serializer to easily use that new resolver. I created some easy adapter but I have problem with context. I am not sure if its even able to do that and support all features from JMS serializer and adapt them do symfony serializer

thanks for any answers

themark147 avatar May 23 '23 10:05 themark147

Quickly looking at the symfony context - it looks like it like an associative array - so most probably it can be easily extended to add all JMS options. In the opposite way for sure not all Symfony context options can be reflexed in JMS - for example DateTime format.

For me it makes sense to start with limited scope and add missing features in the future :)

scyzoryck avatar May 26 '23 13:05 scyzoryck

Using FOSRestBundle for some inspiration here wouldn't be a bad idea. It has an adapter layer to support both serializer implementations.

But, and this is a big but, it also has its own serialization context layer which can handle mapping a subset of similar context configs and dumping the rest through an attributes array.

And then, as pointed out, there are just some incompatibilities between the way things operate between the two serializers that just can't be mapped without changes in the JMS serializer (neither the DateHandler nor SymfonyUidHandler consider the context for formatting, those have to be done through the type configuration or a class level default).

The other big thing that would need a mapping layer would be the exceptions as if the Symfony SerializerInterface is being typehinted against, it'd be a bit weird to have to know to catch exceptions from an alternative implementation.

mbabker avatar May 31 '23 14:05 mbabker