Nuevo en Symfony 4.1: Validación de emails según HTML5

Symfony 4.1 se publicará a finales de mayo de 2018. Este es el primer artículo de la serie que muestra con ejemplos prácticos las principales novedades de esta versión.


Uno de los debates eternos entre programadores/as es cómo validar las direcciones de email. Por una parte hay quien piensa que los emails no se pueden validar completamente mediante código y que por eso hay que enviar siempre un mensaje de confirmación al usuario. Por otra parte hay quien argumenta que si se aplica la validación del estándar RFC 5322 ya es suficiente para cualquier aplicación real.

Symfony siempre ha hecho que esta decisión sea tuya mediante la opción strict del validador de emails. Si esta opción vale false, el email se valida con una expresión regular simple. Si value true, se usar la librería egulias/email-validator para hacer una validación que cumpla el estándar.

En el primer caso, la expresión regular que se usaba era demasiado simple. Así que en Symfony 4.1 hemos decidido empezar a utilizar la misma expresión regular incluida en el validador de email de HTML5. En la práctica hemos declarado la opción strict obsoleta y hemos creado una nueva opción llamada mode con tres posibles valores:

  • loose: usa la expresión regular simple que solo comprueba si el email incluye una arroba, etc. Es igual que el anterior strict = false.
  • strict: hace la validación completa según el estándar y requiere la librería egulias/email-validator. Es igual que el anterior strict = true.
  • html5 usa la misma expresión regular que el estándar HTML5.

Configurando la validación de emails en el framework

Cuando se usa el componente Validator dentro de una aplicación Symfony, puedes configurar el modo de validación de emails mediante la nueva opción email_validation_mode:

# config/packages/framework.yaml
framework:
    validation:
        # posibles valores: 'loose', 'strict', 'html5'
        email_validation_mode: 'html5'

Esta funcionalidad fue contribuida por Billie Thompson en el pull request #24442 y por Christian Flothmann en el pull request #25478.

Fuente: New in Symfony 4.1: HTML5 Email Validation

Comentarios

Publicada el

26 de enero de 2018

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.