Skip to content

Commit b8ff8a2

Browse files
committed
feature #19197 [Serializer][FrameworkBundle] Add a CSV encoder (dunglas)
This PR was squashed before being merged into the 3.2-dev branch (closes #19197). Discussion ---------- [Serializer][FrameworkBundle] Add a CSV encoder | Q | A | ------------- | --- | Branch? | master | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | n/a | License | MIT | Doc PR | todo Usage: ```php use Symfony\Component\Serializer\Serializer; use Symfony\Component\Serializer\Encoder\CsvEncoder; use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; $serializer = new Serializer(array(new ObjectNormalizer()), array(new CsvEncoder())); // or $serializer = $container->get('serializer'); when using the full stack framework $serializer->encode($something, 'csv'); $serializer->decode(<<<'CSV' id,name 1,Kévin CSV , 'csv'); ``` CSV files must contain a header line with property names as keys. ping @clementtalleu @Simperfit @gorghoa Commits ------- e71f5be [Serializer][FrameworkBundle] Add a CSV encoder
2 parents dd2eaf3 + 55019b7 commit b8ff8a2

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

DependencyInjection/FrameworkExtension.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
use Symfony\Component\Config\FileLocator;
2828
use Symfony\Component\PropertyAccess\PropertyAccessor;
2929
use Symfony\Component\Serializer\Encoder\YamlEncoder;
30+
use Symfony\Component\Serializer\Encoder\CsvEncoder;
3031
use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory;
3132
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
3233
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
@@ -1045,6 +1046,12 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
10451046
$definition->addTag('serializer.encoder');
10461047
}
10471048

1049+
if (class_exists(CsvEncoder::class)) {
1050+
$definition = $container->register('serializer.encoder.csv', CsvEncoder::class);
1051+
$definition->setPublic(false);
1052+
$definition->addTag('serializer.encoder');
1053+
}
1054+
10481055
$loader->load('serializer.xml');
10491056
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
10501057

0 commit comments

Comments
 (0)