/**
* Register Drupal drivers.
*/
public function process(ContainerBuilder $container)
{
if (!$container->hasDefinition('drupal.drupal')) {
return;
}
$drupalDefinition = $container->getDefinition('drupal.drupal');
foreach ($container->findTaggedServiceIds('drupal.driver') as $id => $attributes) {
foreach ($attributes as $attribute) {
if (isset($attribute['alias']) && ($name = $attribute['alias'])) {
$drupalDefinition->addMethodCall('registerDriver', array($name, new Reference($id)));
}
}
// If this is Drupal Driver, then a core controller needs to be
// instantiated as well.
if ('drupal.driver.drupal' === $id) {
$drupalDriverDefinition = $container->getDefinition($id);
$availableCores = array();
foreach ($container->findTaggedServiceIds('drupal.core') as $coreId => $coreAttributes) {
foreach ($coreAttributes as $attribute) {
if (isset($attribute['alias']) && ($name = $attribute['alias'])) {
$availableCores[$name] = $container->getDefinition($coreId);
}
}
}
$drupalDriverDefinition->addMethodCall('setCore', array($availableCores));
}
}
$drupalDefinition->addMethodCall('setDefaultDriverName', array($container->getParameter('drupal.drupal.default_driver')));
}