From 6cd5ee3b267925a5cd4b5e3f570a2221eefb1e96 Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Wed, 27 Jan 2016 12:46:36 +0100 Subject: [PATCH] [DependencyInjection] simplify the BC layer The change to the `setFactoryService()` method is consistent with what we did with the `getFactoryService()` before (and how we handle the deprecation of strict references in Symfony 2.8). --- .../Compiler/ResolveReferencesToAliasesPass.php | 5 +---- src/Symfony/Component/DependencyInjection/Definition.php | 6 ++++-- .../Component/DependencyInjection/DefinitionDecorator.php | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php b/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php index 579b85945d..a1ba8a2732 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/ResolveReferencesToAliasesPass.php @@ -44,10 +44,7 @@ class ResolveReferencesToAliasesPass implements CompilerPassInterface $definition->setMethodCalls($this->processArguments($definition->getMethodCalls())); $definition->setProperties($this->processArguments($definition->getProperties())); $definition->setFactory($this->processFactory($definition->getFactory())); - - if (null !== $factoryService = $definition->getFactoryService(false)) { - $definition->setFactoryService($this->processFactoryService($factoryService)); - } + $definition->setFactoryService($this->processFactoryService($definition->getFactoryService(false)), false); } foreach ($container->getAliases() as $id => $alias) { diff --git a/src/Symfony/Component/DependencyInjection/Definition.php b/src/Symfony/Component/DependencyInjection/Definition.php index 74da38203c..0c802b522f 100644 --- a/src/Symfony/Component/DependencyInjection/Definition.php +++ b/src/Symfony/Component/DependencyInjection/Definition.php @@ -194,9 +194,11 @@ class Definition * * @deprecated since version 2.6, to be removed in 3.0. */ - public function setFactoryService($factoryService) + public function setFactoryService($factoryService, $triggerDeprecationError = true) { - @trigger_error(sprintf('%s(%s) is deprecated since version 2.6 and will be removed in 3.0. Use Definition::setFactory() instead.', __METHOD__, $factoryService), E_USER_DEPRECATED); + if ($triggerDeprecationError) { + @trigger_error(sprintf('%s(%s) is deprecated since version 2.6 and will be removed in 3.0. Use Definition::setFactory() instead.', __METHOD__, $factoryService), E_USER_DEPRECATED); + } $this->factoryService = $factoryService; diff --git a/src/Symfony/Component/DependencyInjection/DefinitionDecorator.php b/src/Symfony/Component/DependencyInjection/DefinitionDecorator.php index fd5b00cd20..ae47cc5367 100644 --- a/src/Symfony/Component/DependencyInjection/DefinitionDecorator.php +++ b/src/Symfony/Component/DependencyInjection/DefinitionDecorator.php @@ -99,7 +99,7 @@ class DefinitionDecorator extends Definition /** * {@inheritdoc} */ - public function setFactoryService($service) + public function setFactoryService($service, $triggerDeprecationError = true) { $this->changes['factory_service'] = true;