Normalizer to serialize Ramsey Uuid using Symfony Serializer.
composer require gbprod/uuid-normalizer
By default, Symfony Serializer can't handle serialization and deserialization of Ramsey Uuid. You will have that kind of errors:
Not a time-based UUID
500 Internal Server Error - UnsupportedOperationException
In your app/config/service.yml
file:
services:
uuid_normalizer:
class: GBProd\UuidNormalizer\UuidNormalizer
tags:
- { name: serializer.normalizer }
uuid_denormalizer:
class: GBProd\UuidNormalizer\UuidDenormalizer
tags:
- { name: serializer.normalizer }
Or using xml
:
<services>
<service id="uuid_normalizer" class="GBProd\UuidNormalizer\UuidNormalizer">
<tag name="serializer.normalizer" />
</service>
<service id="uuid_denormalizer" class="GBProd\UuidNormalizer\UuidDenormalizer">
<tag name="serializer.normalizer" />
</service>
</services>
Or php
:
use Symfony\Component\DependencyInjection\Definition;
$definition = new Definition('GBProd\UuidNormalizer\UuidNormalizer');
$definition->addTag('serializer.normalizer');
$container->setDefinition('uuid_normalizer', $definition);
$definition = new Definition('GBProd\UuidNormalizer\UuidDenormalizer');
$definition->addTag('serializer.normalizer');
$container->setDefinition('uuid_denormalizer', $definition);
Or building your own serializer:
use GBProd\UuidNormalizer\UuidDenormalizer;
use GBProd\UuidNormalizer\UuidNormalizer;
$serializer = new Serializer([
new UuidNormalizer(),
new UuidDenormalizer(),
// Other normalizers...
]);
- PHP 7.4+
Feel free to contribute, see CONTRIBUTING.md file for more informations.