I'm working on creating a custom (de)normalizer to handle entities. I have created the normalizer and allowed the service container to autowire/autoconfig. The service is selected correctly during deserialization, but I'm having trouble with the name converter. I want to use the MetadataAwareNameConverter service since I'm using the @SerializedName annotation in my entity. No matter what I do, it is always null in the custom normalizer. I have tried a number of methods of getting the name converter service:
- Setting it explicitly in my class constructor
- Setting it in the service definition (effectively getting rid of autowire/autoconfig)
- Setting MetadataAwareNameConverter as the default in framework.yaml (I discovered it is the default already).
- Copied an existing normalizer into my src and renamed it to see if it got the correct name converter (it still didn't work)
Built in normalizers are getting a name converter without issue, it is just my custom normalizer that is having this issue.
Is there anything else I should try? Am I missing a step in setting up my service? Any direction is appreciated.
UPDATE - when I dump the service container, the name converter service is missing from the arguments list
---------------- ----------------------------------------------------------
Option Value
---------------- ----------------------------------------------------------
Service ID App\Normalizer\QNormalizer
Class App\Normalizer\QNormalizer
Tags serializer.normalizer
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired yes
Autoconfigured yes
Arguments Service(serializer.mapping.class_metadata_factory)
-----THIS IS WHERE THE NAME CONVERTER SHOULD BE----
Service(property_accessor)
Service(property_info)
Service(serializer.mapping.class_discriminator_resolver)