diff --git a/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php b/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php index a76a363547564..c1fbc785aecdc 100644 --- a/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php +++ b/src/Symfony/Component/Validator/Tests/ValidatorBuilderTest.php @@ -102,7 +102,7 @@ public function testSetConstraintValidatorFactory() public function testSetTranslator() { $this->assertSame($this->builder, $this->builder->setTranslator( - $this->getMockBuilder('Symfony\Component\Translation\TranslatorInterface')->getMock()) + $this->getMockBuilder('Symfony\Contracts\Translation\TranslatorInterface')->getMock()) ); } diff --git a/src/Symfony/Component/Validator/ValidatorBuilder.php b/src/Symfony/Component/Validator/ValidatorBuilder.php index fb643327125d5..5c7722c15ff2e 100644 --- a/src/Symfony/Component/Validator/ValidatorBuilder.php +++ b/src/Symfony/Component/Validator/ValidatorBuilder.php @@ -256,8 +256,11 @@ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterfac /** * {@inheritdoc} */ - public function setTranslator(LegacyTranslatorInterface $translator) + public function setTranslator($translator) { + if (!$translator instanceof LegacyTranslatorInterface && !$translator instanceof TranslatorInterface) { + throw new \TypeError(sprintf('Argument 1 passed to %s() must be an instance of %s, %s given.', __METHOD__, TranslatorInterface::class, \is_object($translator) ? \get_class($translator) : \gettype($translator))); + } $this->translator = $translator instanceof LegacyTranslatorProxy ? $translator->getTranslator() : $translator; return $this; diff --git a/src/Symfony/Component/Validator/ValidatorBuilderInterface.php b/src/Symfony/Component/Validator/ValidatorBuilderInterface.php index 1c764d17963d0..463bcb5f97971 100644 --- a/src/Symfony/Component/Validator/ValidatorBuilderInterface.php +++ b/src/Symfony/Component/Validator/ValidatorBuilderInterface.php @@ -12,10 +12,11 @@ namespace Symfony\Component\Validator; use Doctrine\Common\Annotations\Reader; -use Symfony\Component\Translation\TranslatorInterface; +use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface; use Symfony\Component\Validator\Mapping\Cache\CacheInterface; use Symfony\Component\Validator\Mapping\Factory\MetadataFactoryInterface; use Symfony\Component\Validator\Validator\ValidatorInterface; +use Symfony\Contracts\Translation\TranslatorInterface; /** * A configurable builder for ValidatorInterface objects. @@ -134,9 +135,11 @@ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterfac /** * Sets the translator used for translating violation messages. * + * @param TranslatorInterface|LegacyTranslatorInterface $translator + * * @return $this */ - public function setTranslator(TranslatorInterface $translator); + public function setTranslator($translator); /** * Sets the default translation domain of violation messages.