+++ /dev/null
-<?php
-
-namespace Drupal\DrupalExtension\Compiler;
-
-use Symfony\Component\DependencyInjection\Reference,
- Symfony\Component\DependencyInjection\ContainerBuilder,
- Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-
-/**
- * Drupal\DrupalExtension container compilation pass.
- */
-class DriverPass implements CompilerPassInterface {
- /**
- * 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'))
- );
- }
-}