diff --git a/src/Symfony/Component/OptionsResolver/OptionsResolver.php b/src/Symfony/Component/OptionsResolver/OptionsResolver.php index 2a9daa9bbc..591982af51 100644 --- a/src/Symfony/Component/OptionsResolver/OptionsResolver.php +++ b/src/Symfony/Component/OptionsResolver/OptionsResolver.php @@ -801,7 +801,7 @@ class OptionsResolver implements Options // Shortcut for resolved options if (array_key_exists($option, $this->resolved)) { - if ($triggerDeprecation && isset($this->deprecated[$option]) && \is_string($this->deprecated[$option])) { + if ($triggerDeprecation && isset($this->deprecated[$option]) && (isset($this->given[$option]) || $this->calling) && \is_string($this->deprecated[$option])) { @trigger_error(strtr($this->deprecated[$option], array('%name%' => $option)), E_USER_DEPRECATED); } diff --git a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php index a3494ed185..d996fdd264 100644 --- a/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php +++ b/src/Symfony/Component/OptionsResolver/Tests/OptionsResolverTest.php @@ -754,6 +754,9 @@ class OptionsResolverTest extends TestCase yield 'It explicitly ignores a depreciation' => array( function (OptionsResolver $resolver) { $resolver + ->setDefault('baz', function (Options $options) { + return $options->offsetGet('foo', false); + }) ->setDefault('foo', null) ->setDeprecated('foo') ->setDefault('bar', function (Options $options) {