WellCommerce\Bundle\CoreBundle\DependencyInjection\Compiler\FormBuilderPass::process PHP Метод

process() публичный Метод

Processes the container
public process ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function process(ContainerBuilder $container)
    {
        $tag = 'form_builder';
        $interface = FormBuilderInterface::class;
        foreach ($container->findTaggedServiceIds($tag) as $id => $attributes) {
            $definition = $container->getDefinition($id);
            $refClass = new \ReflectionClass($definition->getClass());
            if (!$refClass->implementsInterface($interface)) {
                throw new \InvalidArgumentException(sprintf('FormBuilder "%s" tagged with "%s" must implement interface "%s".', $id, $tag, $interface));
            }
            $definition->addArgument($id);
            $definition->addArgument(new Reference('form.resolver.factory'));
            $definition->addArgument(new Reference('form.handler'));
            $definition->addArgument(new Reference('event_dispatcher'));
            $definition->addMethodCall('setContainer', [new Reference('service_container')]);
        }
    }
FormBuilderPass