diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php index ff72be4..bf2fdc7 100644 --- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php +++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php @@ -10,6 +10,7 @@ use Symfony\Component\DependencyInjection\ContainerBuilder as SymfonyContainerBuilder; use Symfony\Component\DependencyInjection\Container as SymfonyContainer; use Symfony\Component\DependencyInjection\Definition; +use Symfony\Component\DependencyInjection\LazyProxy\Instantiator\RealServiceInstantiator; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\DependencyInjection\Exception\RuntimeException; @@ -26,6 +27,11 @@ class ContainerBuilder extends SymfonyContainerBuilder { /** + * @var \Doctrine\Instantiator\InstantiatorInterface|null + */ + private $proxyInstantiator; + + /** * {@inheritdoc} */ public function __construct(ParameterBagInterface $parameterBag = NULL) { @@ -52,7 +58,8 @@ public function createService(Definition $definition, $id, $tryProxy = true) } if ($definition->isDeprecated()) { - // @this line is changed. + // Suppress deprecation warnings when a service is marked as + // 'deprecated: %service_id%-no-warning' if ($definition->getDeprecationMessage($id) != ($id . '-no-warning')) { @trigger_error($definition->getDeprecationMessage($id), E_USER_DEPRECATED); } @@ -156,6 +163,20 @@ public function createService(Definition $definition, $id, $tryProxy = true) } /** + * Retrieves the currently set proxy instantiator or instantiates one. + * + * @return InstantiatorInterface + */ + private function getProxyInstantiator() + { + if (!$this->proxyInstantiator) { + $this->proxyInstantiator = new RealServiceInstantiator(); + } + + return $this->proxyInstantiator; + } + + /** * Direct copy of the parent function. */ protected function shareService(Definition $definition, $service, $id)