invis1ble / symfony-serializer-extension
Additional useful (de)normalizers for symfony/serializer .
v1.1.2
2024-06-05 02:13 UTC
Requires
- php: >=8.1
- psr/http-factory: ^1.0
- psr/http-message: ^1.1||^2.0
- symfony/serializer: ^6.4|^v7.0
Requires (Dev)
- escapestudios/symfony2-coding-standard: ^3.13@dev
- friendsofphp/php-cs-fixer: dev-master
- guzzlehttp/guzzle: 8.0.x-dev
- phpunit/phpunit: ^11.2@dev
- rector/rector: dev-main
README
A useful set of additional (de)normalizers for symfony/serializer:
UriNormalizer
for normalizing objects implementingPsr\Http\Message\UriInterface
Installation
To install this package, you can use Composer:
composer require invis1ble/symfony-serializer-extension
or just add it as a dependency in your composer.json
file:
{ "require": { "invis1ble/symfony-serializer-extension": "^1.0" } }
After adding the above line, run the following command to install the package:
composer install
Usage
Currently implemented UriNormalizer
only.
This normalizer is designed for normalizing Uri
objects implementing the Psr\Http\Message\UriInterface
.
Read the official documentation for the Serializer component to use normalizers.
use Invis1ble\SymfonySerializerExtension\Normalizer\UriNormalizer; use Symfony\Component\Serializer\Encoder\JsonEncoder; use Symfony\Component\Serializer\Encoder\XmlEncoder; use Symfony\Component\Serializer\Serializer; $encoders = [new XmlEncoder(), new JsonEncoder()]; $normalizers = [new UriNormalizer($uriFactory)]; $serializer = new Serializer($normalizers, $encoders);
Development
Getting started
- If not already done, install Docker Compose (v2.10+)
- Run
docker compose build --no-cache
to build fresh images - Run
docker compose up -d --wait
to start the Docker containers - Run
docker compose exec php composer install
to install dependencies - Run
docker compose down --remove-orphans
to stop the Docker containers.
Check for Coding Standards violations
Run PHP_CodeSniffer checks:
docker compose exec -it php bin/php_codesniffer
Run PHP-CS-Fixer checks:
docker compose exec -it php bin/php-cs-fixer
Run Rector checks:
docker compose exec -it php bin/rector
Testing
To run Unit tests during development
docker compose exec php vendor/bin/phpunit
To run with coverage
XDEBUG_MODE=coverage docker compose up -d --wait
docker compose exec php vendor/bin/phpunit --coverage-clover var/log/coverage-clover.xml