A useful set of additional (de)normalizers for symfony/serializer:
UriNormalizerfor normalizing objects implementingPsr\Http\Message\UriInterface
To install this package, you can use Composer:
composer require invis1ble/symfony-serializer-extensionor 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 installCurrently 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);- If not already done, install Docker Compose (v2.10+)
- Run
docker compose build --no-cacheto build fresh images - Run
docker compose up -d --waitto start the Docker containers - Run
docker compose exec php composer installto install dependencies - Run
docker compose down --remove-orphansto stop the Docker containers.
Run PHP_CodeSniffer checks:
docker compose exec -it php bin/php_codesnifferRun PHP-CS-Fixer checks:
docker compose exec -it php bin/php-cs-fixerRun Rector checks:
docker compose exec -it php bin/rectorTo run Unit tests during development
docker compose exec php vendor/bin/phpunitTo 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