gbprod / uuid-normalizer
Normalizer to serialize Ramsey Uuid with Symfony Serializer
v8.0.0
2026-03-02 10:48 UTC
Requires
- php: ^8.2
- ramsey/uuid: ^4.0
- symfony/serializer: ^6.4|^7.0|^8.0
Requires (Dev)
- phpdocumentor/reflection-docblock: ^5.3
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
- symfony/property-access: ^6.4|^7.0|^8.0
- symfony/property-info: ^6.4|^7.0|^8.0
README
Normalizer to serialize Ramsey Uuid using Symfony Serializer.
Installation
composer require gbprod/uuid-normalizer
Why
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
Setup
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... ]);
Requirements
- PHP 7.4+
Contributing
Feel free to contribute, see CONTRIBUTING.md file for more informations.