invis1ble / symfony-serializer-extension
Additional useful (de)normalizers for symfony/serializer .
Installs: 358
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/invis1ble/symfony-serializer-extension
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:
UriNormalizerfor 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-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.
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