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)));
}
}
}