public function process(ContainerBuilder $container)
{
if (!$container->hasDefinition('ezpublish.api.storage_engine.factory')) {
return;
}
$storageEngineFactoryDef = $container->getDefinition('ezpublish.api.storage_engine.factory');
foreach ($container->findTaggedServiceIds('ezpublish.storageEngine') as $id => $attributes) {
foreach ($attributes as $attribute) {
if (!isset($attribute['alias'])) {
throw new LogicException('ezpublish.storageEngine service tag needs an "alias" attribute to identify the storage engine. None given.');
}
// Register the storage engine on the main storage engine factory
$storageEngineFactoryDef->addMethodCall('registerStorageEngine', array(new Reference($id), $attribute['alias']));
}
}
}