From 6c2262203ee992c131dbb10c6a7f9f0a206c357a Mon Sep 17 00:00:00 2001 From: Zayan Goripov <15webgoripov@gmail.com> Date: Sun, 5 Feb 2023 11:53:57 +0300 Subject: [PATCH] [Serializer] Fix CsvEncoder decode on empty data --- src/Symfony/Component/Serializer/Encoder/CsvEncoder.php | 2 +- .../Component/Serializer/Tests/Encoder/CsvEncoderTest.php | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php b/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php index 4c518145612d2..55f78b1d0e013 100644 --- a/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php +++ b/src/Symfony/Component/Serializer/Encoder/CsvEncoder.php @@ -167,7 +167,7 @@ public function decode(string $data, string $format, array $context = []) $headerCount = array_fill(0, $nbCols, 1); } else { foreach ($cols as $col) { - $header = explode($keySeparator, $col); + $header = explode($keySeparator, $col ?? ''); $headers[] = $header; $headerCount[] = \count($header); } diff --git a/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php b/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php index 92df80ea98215..06cf6a0617d86 100644 --- a/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php +++ b/src/Symfony/Component/Serializer/Tests/Encoder/CsvEncoderTest.php @@ -211,6 +211,14 @@ public function testEncodeEmptyArray() { $this->assertEquals("\n\n", $this->encoder->encode([], 'csv')); $this->assertEquals("\n\n", $this->encoder->encode([[]], 'csv')); + $this->assertEquals("\n\n", $this->encoder->encode([['' => null]], 'csv')); + } + + public function testDecodeEmptyData() + { + $data = $this->encoder->decode("\n\n", 'csv'); + + $this->assertSame([['' => null]], $data); } public function testEncodeVariableStructure()