3 namespace Drupal\Core\DependencyInjection\Compiler;
5 use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
6 use Symfony\Component\DependencyInjection\ContainerBuilder;
9 * Sets the _serviceId property on all services.
11 * @see \Drupal\Core\DependencyInjection\DependencySerializationTrait
13 class DependencySerializationTraitPass implements CompilerPassInterface {
18 public function process(ContainerBuilder $container) {
19 foreach ($container->getDefinitions() as $service_id => $definition) {
20 // Only add the property to services that are public (as private services
21 // can not be reloaded through Container::get()) and are objects.
22 if (!$definition->hasTag('parameter_service') && $definition->isPublic()) {
23 $definition->setProperty('_serviceId', $service_id);