You are here

public function DependencySerializationTraitPass::process in Service Container 7

Same name and namespace in other branches
  1. 7.2 lib/Drupal/Core/DependencyInjection/Compiler/DependencySerializationTraitPass.php \Drupal\Core\DependencyInjection\Compiler\DependencySerializationTraitPass::process()

You can modify the container here before it is dumped to PHP code.

@api

Parameters

ContainerBuilder $container:

Overrides CompilerPassInterface::process

File

lib/Drupal/Core/DependencyInjection/Compiler/DependencySerializationTraitPass.php, line 23
Contains \Drupal\Core\DependencyInjection\Compiler\DependencySerializationTraitPass.

Class

DependencySerializationTraitPass
Sets the _serviceId property on all services.

Namespace

Drupal\Core\DependencyInjection\Compiler

Code

public function process(ContainerBuilder $container) {
  foreach ($container
    ->getDefinitions() as $service_id => $definition) {

    // Only add the property to services that are public (as private services
    // can not be reloaded through Container::get()) and are objects.
    if (!$definition
      ->hasTag('parameter_service') && $definition
      ->isPublic()) {
      $definition
        ->setProperty('_serviceId', $service_id);
    }
  }
}