/
TwigExtensionPass.php
27 lines (23 loc) · 1.05 KB
/
TwigExtensionPass.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php
namespace JMS\SerializerBundle\DependencyInjection\Compiler;
use JMS\Serializer\Twig\SerializerRuntimeExtension;
use JMS\Serializer\Twig\SerializerRuntimeHelper;
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class TwigExtensionPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
if (!$container->hasDefinition('twig.runtime_loader')
|| !class_exists(SerializerRuntimeExtension::class)
|| !(interface_exists('Twig\RuntimeLoader\RuntimeLoaderInterface') || interface_exists('Twig_RuntimeLoaderInterface'))
|| !class_exists(SerializerRuntimeHelper::class)
) {
$container->removeDefinition('jms_serializer.twig_extension.serializer_runtime_helper');
return;
}
$def = $container->findDefinition('jms_serializer.twig_extension.serializer');
$def->setClass(SerializerRuntimeExtension::class);
$def->setArguments(array());
}
}