php - 运行 PHPUnit 时 Symfony 2.8 验证器弃用通知
问题描述
安装后我在我的项目上运行 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 上,打算在升级之前完成弃用。
解决方案
推荐阅读
- javascript - 错误 [ERR_MODULE_NOT_FOUND]:找不到从 build\server.js 导入的模块 'build\app'
- reactjs - 检查主题,否则使用样式组件中的值
- windows - 使用 Cygwin64 在 Windows 中安装 openmpi-3.1.6 时配置错误
- laravel - 在 null 上调用成员函数 hasRole() 时出错
- angular - Angular 10 输入值绑定由 jquery.val() 更改
- typescript - Typescript getter 类型推断
- perforce - 在 perforce 上搁置和提交有什么区别?
- python - 从 Pandas 数据框中的列表中返回匹配元素
- javascript - 如何将数据发送到工厂服务并设置为参数值?
- java - 如何使用 exoplayer 通过标签播放媒体?