name: AddAutoMappingConfigurationPass class_comment: "# * Injects the automapping configuration as last argument of loaders\ \ tagged with the \"validator.auto_mapper\" tag.\n# *\n# * @author K\xE9vin Dunglas\ \ " dependencies: - name: CompilerPassInterface type: class source: Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface - name: ContainerBuilder type: class source: Symfony\Component\DependencyInjection\ContainerBuilder - name: Reference type: class source: Symfony\Component\DependencyInjection\Reference properties: [] methods: - name: getRegexp visibility: private parameters: - name: patterns comment: "# * Injects the automapping configuration as last argument of loaders\ \ tagged with the \"validator.auto_mapper\" tag.\n# *\n# * @author K\xE9vin Dunglas\ \ \n# */\n# class AddAutoMappingConfigurationPass implements\ \ CompilerPassInterface\n# {\n# public function process(ContainerBuilder $container):\ \ void\n# {\n# if (!$container->hasParameter('validator.auto_mapping') || !$container->hasDefinition('validator.builder'))\ \ {\n# return;\n# }\n# \n# $config = $container->getParameter('validator.auto_mapping');\n\ # \n# $globalNamespaces = [];\n# $servicesToNamespaces = [];\n# foreach ($config\ \ as $namespace => $value) {\n# if ([] === $value['services']) {\n# $globalNamespaces[]\ \ = $namespace;\n# \n# continue;\n# }\n# \n# foreach ($value['services'] as $service)\ \ {\n# $servicesToNamespaces[$service][] = $namespace;\n# }\n# }\n# \n# $validatorBuilder\ \ = $container->getDefinition('validator.builder');\n# foreach ($container->findTaggedServiceIds('validator.auto_mapper')\ \ as $id => $tags) {\n# $regexp = $this->getRegexp(array_merge($globalNamespaces,\ \ $servicesToNamespaces[$id] ?? []));\n# $validatorBuilder->addMethodCall('addLoader',\ \ [new Reference($id)]);\n# $container->getDefinition($id)->setArgument('$classValidatorRegexp',\ \ $regexp);\n# }\n# \n# $container->getParameterBag()->remove('validator.auto_mapping');\n\ # }\n# \n# /**\n# * Builds a regexp to check if a class is auto-mapped." traits: - Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface - Symfony\Component\DependencyInjection\ContainerBuilder - Symfony\Component\DependencyInjection\Reference interfaces: - CompilerPassInterface