vendor/jms/serializer-bundle/JMSSerializerBundle.php line 17

Open in your IDE?
  1. <?php
  2. namespace JMS\SerializerBundle;
  3. use JMS\DiExtraBundle\DependencyInjection\Compiler\LazyServiceMapPass;
  4. use JMS\SerializerBundle\DependencyInjection\Compiler\CustomHandlersPass;
  5. use JMS\SerializerBundle\DependencyInjection\Compiler\DoctrinePass;
  6. use JMS\SerializerBundle\DependencyInjection\Compiler\FormErrorHandlerTranslationDomainPass;
  7. use JMS\SerializerBundle\DependencyInjection\Compiler\RegisterEventListenersAndSubscribersPass;
  8. use JMS\SerializerBundle\DependencyInjection\Compiler\ServiceMapPass;
  9. use JMS\SerializerBundle\DependencyInjection\Compiler\TwigExtensionPass;
  10. use Symfony\Component\DependencyInjection\Compiler\PassConfig;
  11. use Symfony\Component\DependencyInjection\ContainerBuilder;
  12. use Symfony\Component\DependencyInjection\Definition;
  13. use Symfony\Component\HttpKernel\Bundle\Bundle;
  14. class JMSSerializerBundle extends Bundle
  15. {
  16.     public function build(ContainerBuilder $builder)
  17.     {
  18.         $builder->addCompilerPass($this->getServiceMapPass('jms_serializer.serialization_visitor''format',
  19.             function (ContainerBuilder $containerDefinition $def) {
  20.                 $container->getDefinition('jms_serializer.serializer')->replaceArgument(3$def);
  21.             }
  22.         ));
  23.         $builder->addCompilerPass($this->getServiceMapPass('jms_serializer.deserialization_visitor''format',
  24.             function (ContainerBuilder $containerDefinition $def) {
  25.                 $container->getDefinition('jms_serializer.serializer')->replaceArgument(4$def);
  26.             }
  27.         ));
  28.         $builder->addCompilerPass(new FormErrorHandlerTranslationDomainPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION);
  29.         $builder->addCompilerPass(new TwigExtensionPass(), PassConfig::TYPE_BEFORE_OPTIMIZATION);
  30.         $builder->addCompilerPass(new RegisterEventListenersAndSubscribersPass(), PassConfig::TYPE_BEFORE_REMOVING);
  31.         $builder->addCompilerPass(new CustomHandlersPass(), PassConfig::TYPE_BEFORE_REMOVING);
  32.         $builder->addCompilerPass(new DoctrinePass(), PassConfig::TYPE_BEFORE_REMOVING);
  33.     }
  34.     private function getServiceMapPass($tagName$keyAttributeName$callable)
  35.     {
  36.         if (class_exists('JMS\DiExtraBundle\DependencyInjection\Compiler\LazyServiceMapPass')) {
  37.             return new LazyServiceMapPass($tagName$keyAttributeName$callable);
  38.         }
  39.         return new ServiceMapPass($tagName$keyAttributeName$callable);
  40.     }
  41. }