Contributed by
Billie Thompson
in #24442.
Symfony 4.1 将在 2018 年5月发。这是系列首篇文章,此一版 Symfony 引入的最重要功能将在本系列中进行展现。
邮件地址的验证,在开发者中是永无休止的争论之一。有一种观点认为,不可能依靠程序来真正验证,你必须要发送一封确认邮件。另外一派则认为遵守了 RFC 5322 的程序化验证对于现实世界的应用来说已经足够。
通过 Email validation constraint 的 strict
选项,Symfony 始终把选项交给你。当设置成 false
时, 邮件地址将通过一个简单的正则来验证。如果设为 true
,则 RFC 验证会通过第三方的 egulias/email-validator 库来实施。
但是,用于验证邮件地址的正则表达式太弱了。这就是为何在 Symfony 4.1 中我们决定跟进使用 由 HTML5 完成的邮件验证 。实践中,我们不建议再使用 strict
选项,而是改用具有如下取值的 mode
选项:
loose
: 使用简单正则来寻找最明显错误(未发现@
字符等等)。基本就是以前的strict = false
。strict
: 实施遵循 RFC 的认证,需要安装 egulias/email-validator 三方库。基本就是以前的strict = true
。html5
使用 HTML5 协议的正则表达式,最佳平衡点的取值,提供快速可靠的验证而毋须安装外部库。
在框架中配置邮件验证
Contributed by
Christian Flothmann
in #25478.
当使用了 Symfony 中的 Validator 组件 时,你可以设置邮件地址的验证模式为全新的 email_validation_mode
选项:
1 2 3 4 5 | # config/packages/framework.yaml
framework:
validation:
# possible values(可选值): 'loose', 'strict', 'html5'
email_validation_mode: 'html5' |