Я запускаю PHPUnit в моем проекте после установки symfony/phpunit-bridge
.Я обновляю свое приложение Symfony 2.8 до Symfony 3.4 LTS.
Я получаю следующие уведомления об устаревании:
4x: The Symfony\Component\Validator\ValidatorInterface::validate method is deprecated in version 2.5 and will be removed in version 3.0. Use the Symfony\Component\Validator\Validator\ValidatorInterface::validate method instead.
4x in CourseTest::testRegexAssertion from CRMPiccoBundle\Tests\Entity
4x: The "deep" option for the Valid constraint is deprecated since Symfony 2.5 and will be removed in 3.0. When traversing arrays, nested arrays are always traversed. When traversing nested objects, their traversal strategy is used.
4x in CourseTest::testRegexAssertion from CRMPiccoBundle\Tests\Entity
В своем определении сервиса я установил валидатор следующим образом:
calls:
- [setValidator, ['@validator']]
Когда я смотрю на определение сервиса Symfony для «валидатора», я вижу следующее:
<parameter key="validator.class">Symfony\Component\Validator\Validator\ValidatorInterface</parameter>
<service id="validator" class="%validator.class%">
<factory service="validator.builder" method="getValidator" />
</service>
Однако в моем классе, где я использую валидатор, я вижу вывод валидатора как Symfony\Component\Validator\Validator\RecursiveValidator
- и я не знаю почему?
use Symfony\Component\Validator\Validator\ValidatorInterface;
/**
* @param ValidatorInterface $validator
*/
public function setValidator(ValidatorInterface $validator)
{
dump(get_class($validator));
$this->validator = $validator;
}
Я еще не обновился до Symfony 3.4, так что я все еще на 2.8.36 с намерением проработать устаревшие версии перед обновлением.