Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ad5255f

Browse files
committed
accept format arg - default to json
1 parent ad3cb9c commit ad5255f

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/Symfony/Bridge/Twig/Extension/SerializeExtension.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ public function getFilters(): array
3434
];
3535
}
3636

37-
public function serialize(object $object): string
37+
public function serialize(object $object, string $format = 'json'): string
3838
{
39-
return $this->serializer->serialize($object, 'json');
39+
return $this->serializer->serialize($object, $format);
4040
}
4141
}

src/Symfony/Bridge/Twig/Tests/Extension/SerializerExtensionTest.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Bridge\Twig\Extension\SerializeExtension;
1616
use Symfony\Component\Serializer\Encoder\JsonEncoder;
17+
use Symfony\Component\Serializer\Encoder\YamlEncoder;
1718
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
1819
use Symfony\Component\Serializer\Serializer;
1920
use Twig\Environment;
@@ -24,7 +25,7 @@
2425
*/
2526
class SerializerExtensionTest extends TestCase
2627
{
27-
public function testSerializer()
28+
public function testSerializeDefaultsToJson()
2829
{
2930
$extension = new SerializeExtension(new Serializer([new ObjectNormalizer()], [new JsonEncoder()]));
3031

@@ -40,4 +41,21 @@ public function testSerializer()
4041

4142
self::assertSame('{"title":"testing"}', $result);
4243
}
44+
45+
public function testSerializeAcceptsFormat()
46+
{
47+
$extension = new SerializeExtension(new Serializer([new ObjectNormalizer()], [new JsonEncoder(), new YamlEncoder()]));
48+
49+
$object = new \stdClass();
50+
$object->title = 'testing';
51+
52+
$template = '{{ object|serialize(\'yaml\') }}';
53+
54+
$twig = new Environment(new ArrayLoader(['template' => $template]));
55+
$twig->addExtension($extension);
56+
57+
$result = $twig->render('template', ['object' => $object]);
58+
59+
self::assertSame('{ title: testing }', $result);
60+
}
4361
}

0 commit comments

Comments
 (0)