for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace JMS\Serializer\Twig;
use JMS\Serializer\SerializationContext;
use JMS\Serializer\SerializerInterface;
use Twig\TwigFilter;
use Twig\TwigFunction;
/**
* Serializer helper twig extension
*
* Basically provides access to JMSSerializer from Twig
*/
class SerializerExtension extends SerializerBaseExtension
{
* @var SerializerInterface
protected $serializer;
public function __construct(SerializerInterface $serializer, string $serializationFunctionsPrefix = '')
$this->serializer = $serializer;
parent::__construct($serializationFunctionsPrefix);
}
* @return TwigFilter[]
* @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint
public function getFilters()
return [
new TwigFilter($this->serializationFunctionsPrefix . 'serialize', [$this, 'serialize']),
];
* @return TwigFunction[]
public function getFunctions()
new TwigFunction($this->serializationFunctionsPrefix . 'serialization_context', '\JMS\Serializer\SerializationContext::create'),
public function serialize(object $object, string $type = 'json', ?SerializationContext $context = null): string
return $this->serializer->serialize($object, $type, $context);