function DeprecatedServicePass::process

Same name in other branches
  1. 10 core/lib/Drupal/Core/DependencyInjection/Compiler/DeprecatedServicePass.php \Drupal\Core\DependencyInjection\Compiler\DeprecatedServicePass::process()
  2. 11.x core/lib/Drupal/Core/DependencyInjection/Compiler/DeprecatedServicePass.php \Drupal\Core\DependencyInjection\Compiler\DeprecatedServicePass::process()

File

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

Class

DeprecatedServicePass
Sets the _deprecated_service_list parameter.

Namespace

Drupal\Core\DependencyInjection\Compiler

Code

public function process(ContainerBuilder $container) {
    $deprecated_services = [];
    foreach ($container->getDefinitions() as $service_id => $definition) {
        if ($definition->isDeprecated()) {
            // @todo: remove when Drupal requires Symfony 5. See
            // https://www.drupal.org/project/drupal/issues/3197482
            if (method_exists($definition, 'getDeprecation')) {
                $deprecated_services[$service_id] = $definition->getDeprecation($service_id)['message'];
            }
            else {
                $deprecated_services[$service_id] = $definition->getDeprecationMessage($service_id);
            }
        }
    }
    foreach ($container->getAliases() as $service_id => $definition) {
        if ($definition->isDeprecated()) {
            // @todo: remove when Drupal requires Symfony 5. See
            // https://www.drupal.org/project/drupal/issues/3197482
            if (method_exists($definition, 'getDeprecation')) {
                $deprecated_services[$service_id] = $definition->getDeprecation($service_id)['message'];
            }
            else {
                $deprecated_services[$service_id] = $definition->getDeprecationMessage($service_id);
            }
        }
    }
    $container->setParameter('_deprecated_service_list', $deprecated_services);
}

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