|
1 | 1 | <?php |
2 | 2 |
|
| 3 | +/** |
| 4 | + * @param list<Symfony\Component\JsonStreamer\Tests\Fixtures\Model\DummyWithNestedArray> $data |
| 5 | + */ |
3 | 6 | return static function (mixed $data, \Psr\Container\ContainerInterface $valueTransformers, array $options): \Traversable { |
4 | 7 | try { |
5 | | - yield '['; |
6 | | - $prefix = ''; |
| 8 | + yield "["; |
| 9 | + $prefix1 = ''; |
7 | 10 | foreach ($data as $value1) { |
8 | | - yield $prefix; |
9 | | - yield '{"dummies":{'; |
10 | | - $prefix = ''; |
| 11 | + $prefix2 = ''; |
| 12 | + yield "{$prefix1}{{$prefix2}\"dummies\":"; |
| 13 | + yield "{"; |
| 14 | + $prefix3 = ''; |
11 | 15 | foreach ($value1->dummies as $key2 => $value2) { |
12 | 16 | $key2 = is_int($key2) ? $key2 : \substr(\json_encode($key2), 1, -1); |
13 | | - yield "{$prefix}\"{$key2}\":"; |
14 | | - yield '{"dummies":{'; |
15 | | - $prefix = ''; |
| 17 | + $prefix4 = ''; |
| 18 | + yield "{$prefix3}\"{$key2}\":{{$prefix4}\"dummies\":"; |
| 19 | + yield "{"; |
| 20 | + $prefix5 = ''; |
16 | 21 | foreach ($value2->dummies as $key3 => $value3) { |
17 | 22 | $key3 = is_int($key3) ? $key3 : \substr(\json_encode($key3), 1, -1); |
18 | | - yield "{$prefix}\"{$key3}\":"; |
19 | | - yield '{"id":'; |
| 23 | + $prefix6 = ''; |
| 24 | + yield "{$prefix5}\"{$key3}\":{{$prefix6}\"id\":"; |
20 | 25 | yield \json_encode($value3->id, \JSON_THROW_ON_ERROR, 506); |
21 | | - yield ',"name":'; |
| 26 | + $prefix6 = ','; |
| 27 | + yield "{$prefix6}\"name\":"; |
22 | 28 | yield \json_encode($value3->name, \JSON_THROW_ON_ERROR, 506); |
23 | | - yield '}'; |
24 | | - $prefix = ','; |
| 29 | + yield "}"; |
| 30 | + $prefix5 = ','; |
25 | 31 | } |
26 | | - yield '},"customProperty":'; |
| 32 | + $prefix4 = ','; |
| 33 | + yield "}{$prefix4}\"customProperty\":"; |
27 | 34 | yield \json_encode($value2->customProperty, \JSON_THROW_ON_ERROR, 508); |
28 | | - yield '}'; |
29 | | - $prefix = ','; |
| 35 | + yield "}"; |
| 36 | + $prefix3 = ','; |
30 | 37 | } |
31 | | - yield '},"stringProperty":'; |
| 38 | + $prefix2 = ','; |
| 39 | + yield "}{$prefix2}\"stringProperty\":"; |
32 | 40 | yield \json_encode($value1->stringProperty, \JSON_THROW_ON_ERROR, 510); |
33 | | - yield '}'; |
34 | | - $prefix = ','; |
| 41 | + yield "}"; |
| 42 | + $prefix1 = ','; |
35 | 43 | } |
36 | | - yield ']'; |
| 44 | + yield "]"; |
37 | 45 | } catch (\JsonException $e) { |
38 | 46 | throw new \Symfony\Component\JsonStreamer\Exception\NotEncodableValueException($e->getMessage(), 0, $e); |
39 | 47 | } |
|
0 commit comments