繁体   English   中英

Symfony2验证-在TEST环境中覆盖checkMX约束

[英]Symfony2 validation - override checkMX constraint in TEST environment

我有一个带有验证设置的Symfony表单(使用validations.yml文件中的定义)。 在此表单中,是一个电子邮件字段,我在其中添加了checkMX验证程序约束。 在正常使用情况下可以正常工作。 http://symfony.com/doc/current/reference/constraints/Email.html#checkmx

但是,在运行没有Internet连接的测试套件时,由于验证程序尝试查找电子邮件地址域的DNS,这将使测试停止,并且它无法查找DNS,因此必须等待超时。 无论如何,在测试过程中需要远程查找都是不理想的。

是否只有在运行TEST环境时,才能从验证中删除此约束? 大概我只需要重写约束,但是我不知道如何针对每个环境执行此操作。

谢谢

您可以从控制器获取环境并将其传递给表单:

$env = $this->container->get( 'kernel' )->getEnvironment();
$oForm = $this->createForm(new Form($env));

然后在您的BuildForm之前:

 public function __construct($env)
{
    $this->sEnv  = $env;
}

然后您进行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM