function BackwardsCompatibilityClassLoaderPass::process

File

core/lib/Drupal/Core/DependencyInjection/Compiler/BackwardsCompatibilityClassLoaderPass.php, line 18

Class

BackwardsCompatibilityClassLoaderPass
Compiler pass to merge moved classes into a single container parameter.

Namespace

Drupal\Core\DependencyInjection\Compiler

Code

public function process(ContainerBuilder $container) : void {
  $moved_classes = $container->hasParameter('core.moved_classes') ? $container->getParameter('core.moved_classes') : [];
  $modules = array_keys($container->getParameter('container.modules'));
  foreach ($modules as $module) {
    $parameter_name = $module . '.moved_classes';
    if ($container->hasParameter($parameter_name)) {
      $module_moved = $container->getParameter($parameter_name);
      \assert(is_array($module_moved));
      \assert(count($module_moved) === count(array_column($module_moved, 'class')), 'Missing class key for moved classes in ' . $module);
      $moved_classes = $moved_classes + $module_moved;
    }
  }
  if (!empty($moved_classes)) {
    $container->setParameter('moved_classes', $moved_classes);
  }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.