WellCommerce\Bundle\CoreBundle\DependencyInjection\Compiler\DataGridPass::process PHP Method

process() public method

Processes the container
public process ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function process(ContainerBuilder $container)
    {
        $tag = 'datagrid';
        $interface = DataGridInterface::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('DataGrid "%s" tagged with "%s" must implement interface "%s".', $id, $tag, $interface));
            }
            $definition->addArgument($attributes[0]['alias']);
            $definition->addArgument(new Reference('event_dispatcher'));
            $definition->addMethodCall('setContainer', [new Reference('service_container')]);
        }
    }
DataGridPass