diff --git a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php index 949950f..1837cf4 100644 --- a/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php +++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumper.php @@ -252,7 +252,10 @@ protected function getServiceDefinition(Definition $definition) { } } - $service['shared'] = $definition->isShared(); + // By default services are shared, so just provide the flag, when needed. + if ($definition->isShared() === FALSE) { + $service['shared'] = $definition->isShared(); + } if (($decorated = $definition->getDecoratedService()) !== NULL) { throw new InvalidArgumentException("The 'decorated' definition is not supported by the Drupal 8 run-time container. The Container Builder should have resolved that during the DecoratorServicePass compiler pass."); diff --git a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php index 0a227d7..c1c6058 100644 --- a/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php +++ b/core/tests/Drupal/Tests/Component/DependencyInjection/Dumper/OptimizedPhpArrayDumperTest.php @@ -267,6 +267,10 @@ public function getDefinitionsDataProvider() { ) + $base_service_definition; $service_definitions[] = array( + 'shared' => FALSE, + ) + $base_service_definition; + + $service_definitions[] = array( 'lazy' => TRUE, ) + $base_service_definition;