Nuevo en Symfony 4.1: mejoras en el validador
Declarada obsoleta la opción checkDNS
del validador de URL
En Symfony 4.1, la opción checkDNS
(y su opción relacionada dnsMessage
) del
validador Url se ha declarado obsoleta. Esta opción permitía validar si
el host asociado a la URL existía realmente. Internamente utiliza la función
checkdnsrr()
de PHP y se ha declarado obsoleta (y será eliminada en Symfony 5.0)
porque los resultados no son totalmente fiables.
No se proporciona ninguna alternative, así que si quieres seguir usando esta
validación, tendrás que crear un validador propio que haga uso de la función
checkdnsrr()
de PHP.
Esta funcionalidad fue contribuida por Roland Franssen en el pull request #25516.
El validador Expression admite valores arbitrarios
En Symfony 4.1, el validador Expression acepta una nueva opción llamada
values
que permite pasar valores arbitrarios que puedes utilizar en las
expresiones:
use Symfony\Component\Validator\Constraints\Expression; $constraint = new Expression([ 'expression' => 'value + mi_valor == 2', 'values' => [ 'mi_valor' => 1, ], ]);
Esta funcionalidad fue contribuida por Gabriel Ostrolucký en el pull request #25504.
Añadida una opción canonicalize
en el validador Locale
En Symfony 4.1, el validador Locale define una nueva opción booleana
llamada canonicalize
. Si es true
, el locale se transforma en su valor
canónico antes de validarlo.
Por ejemplo, un valor como FR-fr.utf8
se transforma en fr_FR
, el valor
UZ-cYRL-uz
se transforma en uz_Cyrl_UZ
, etc.
use Symfony\Component\Validator\Constraints as Assert; class User { /** @Assert\Locale(canonicalize = true) */ protected $locale; }
Esta funcionalidad fue contribuida por Javier Spagnoletti en el pull request #22353.
Añadido soporte para validar URLs sin protocolo
El validador URL incluye la opción protocols
para definir los protocolos
permitidos en las URLs (por defecto, ['http', 'https']
). En Symfony 4.1 hemos
añadido una nueva opción booleana llamada relativeProtocol
. Si vale true
,
las ULRs sin protocolo (ej. //example.com
) también se consideran válidas:
use Symfony\Component\Validator\Constraints as Assert; class Author { /** @Assert\Url(relativeProtocol = true) */ protected $bioUrl; }
Esta funcionalidad fue contribuida por Peter Smeets en el pull request #24308.
Fuente: New in Symfony 4.1: Validator improvements
Comentarios
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.