D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
usr
/
local
/
psa
/
admin
/
plib
/
modules
/
rest-api
/
vendor
/
jms
/
serializer
/
src
/
Twig
/
Filename :
SerializerExtension.php
back
Copy
<?php declare (strict_types=1); namespace PleskRestApi\JMS\Serializer\Twig; use PleskRestApi\JMS\Serializer\SerializationContext; use PleskRestApi\JMS\Serializer\SerializerInterface; use PleskRestApi\Twig\TwigFilter; use PleskRestApi\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[] * * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingReturnTypeHint */ public function getFunctions() { return [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); } }