Nuevo en Symfony 5.1: Mejoras en el componente Validator

En Symfony 5.1, además de introducir los validadores AtLeastOneOf, ExpressionLanguageSyntax y Hostname, hemos añadido otras mejoras en el validador.

Añadida la opción alpha3 a Country

Si defines como true la nueva opción alpha3 del validador Country, el valor se valida como un código de país de tres letras ISO 3166-1 alpha-3 (ej. ARG = Argentina) en vez del código por defecto de dos letras ISO 3166-1 alpha-2 (ej. AR = Argentina).

Esta funcionalidad fue contribuida por Maxime Perrimond en el pull request #35116.

Añadida la opción alpha3 a Language

Similar a la funcionalidad anterior, la opción alpha3 del validador Language permite usar códigos de idioma de tres letras using ISO 639-2 (swe = sueco) en vez del código por defecto de dos letras ISO 639-1 (sv = sueco).

Esta funcionalidad fue contribuida por Christian Flothmann en el pull request #35848.

Añadida la opción divisibleBy a Count

La nueva opción divisibleBy del validador Count comprueba que el número de elementos de la colección es divisible por el número indicado. Si quieres hacer esta comprobación en otros tipos de datos diferentes a colecciones, utiliza el validador DivisibleBy.

Esta funcionalidad fue contribuida por Thomas Calvet en el pull request #35783.

Validación reusable

A veces necesitas reusar los validadores de Symfony en lugares como los comandos de consola; por ejemplo, para validar el respuesta a una pregunta de la consola. Por eso hemos añadido un méotodo llamado Validation::createCallable() para crear un callable de PHP con los validadores indicados:

use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\Validator\Constraints\NotNull;
use Symfony\Component\Validator\Validation;
 
$io = new SymfonyStyle($input, $output);
$validation = Validation::createCallable(new NotBlank());
 
$wsdl = $io->ask('Wsdl location URL', null, $validation);

El argumento de createCallable() es variádico, así que puedes pasar más de un validador:

// ...
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\Url;
 
$validation = Validation::createCallable(new Length(['max' => 255]), new Url());

Esta funcionalidad fue contribuida por janvernieuwe en el pull request #31466.


Fuente: New in Symfony 5.1: Validator improvements

Comentarios

Publicada el

18 de mayo de 2020

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.