class BackwardsCompatibilityClassLoaderPass
Defines a compiler pass to merge moved classes into a single container parameter.
Hierarchy
- class \Drupal\Core\DependencyInjection\Compiler\BackwardsCompatibilityClassLoaderPass implements \Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface
Expanded class hierarchy of BackwardsCompatibilityClassLoaderPass
1 file declares its use of BackwardsCompatibilityClassLoaderPass
- CoreServiceProvider.php in core/
lib/ Drupal/ Core/ CoreServiceProvider.php
File
-
core/
lib/ Drupal/ Core/ DependencyInjection/ Compiler/ BackwardsCompatibilityClassLoaderPass.php, line 13
Namespace
Drupal\Core\DependencyInjection\CompilerView source
class BackwardsCompatibilityClassLoaderPass implements CompilerPassInterface {
/**
* {@inheritdoc}
*/
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);
}
}
}
Members
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.