eZ\Publish\Core\Base\Container\Compiler\Search\SignalSlotPass::process PHP Method

process() public method

public process ( ContainerBuilder $container )
$container Symfony\Component\DependencyInjection\ContainerBuilder
    public function process(ContainerBuilder $container)
    {
        if (!$container->hasDefinition('ezpublish.signalslot.signal_dispatcher')) {
            return;
        }
        $signalDispatcherDef = $container->getDefinition('ezpublish.signalslot.signal_dispatcher');
        foreach ($container->findTaggedServiceIds('ezpublish.search.slot') as $id => $attributes) {
            foreach ($attributes as $attribute) {
                if (!isset($attribute['signal'])) {
                    throw new LogicException("Could not find 'signal' attribute on '{$id}' service, " . "which is mandatory for services tagged as 'ezpublish.persistence.solr.slot'");
                }
                $signalDispatcherDef->addMethodCall('attach', array($attribute['signal'], new Reference($id)));
            }
        }
    }
SignalSlotPass