A useful set of additional (de)normalizers for symfony/serializer:
UriNormalizer
for normalizing objects implementingPsr\Http\Message\UriInterface
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
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);
- 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.
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
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