gbprod / uuid-normalizer
Normalizer to serialize Ramsey Uuid with Symfony Serializer
Installs: 501 003
Dependents: 2
Suggesters: 0
Security: 0
Stars: 32
Watchers: 3
Forks: 8
Open Issues: 1
Requires
- php: ^7.4|^8.0
- ramsey/uuid: ^4.0
- symfony/serializer: ^5.4|^6.0|^7.0
Requires (Dev)
- phpdocumentor/reflection-docblock: ^5.3
- phpstan/phpstan: ^1.8
- phpunit/phpunit: ^9.5
- symfony/property-access: ^5.4|^6.0|^7.0
This package is auto-updated.
Last update: 2024-11-28 14:51:56 UTC
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.