Symfony 4.1: Aperfeiçoamentos no Validador

Descontinuada a opção checkDNS do validador de URL

Andréia Bohner
2 min readApr 8, 2018

No Symfony 4.1, a opção checkDNS(e sua opção relacionada dnsMessage) do validador URL foi descontinuada. Essa opção permitia verificar se o host associado a URL fornecida existia. Ela usava a função checkdnsrr() do PHP e foi descontinuada (e removida no Symfony 5.0) porque seus resultados não são totalmente confiáveis.

Nenhuma alternativa é fornecida, portanto, se você ainda quiser aplicar essa validação, crie uma validação customizada e use a função PHP checkdnsrr().

Permitir passar valores personalizados para o validador Expression

No Symfony 4.1, o validador Expression aceita uma nova opção chamada values para passar valores arbitrários e usá-los em suas expressões:

use Symfony\Component\Validator\Constraints\Expression;

$constraint = new Expression([
'expression' => 'value + custom == 2',
'values' => [
'custom' => 1,
],
]);

Adicionada uma opção canonicalize ao validador Locale

No Symfony 4.1, o validador Locale define uma nova opção booleana chamada canonicalize. Se true, o valor locale fornecido é transformado em sua forma canônica antes de validá-lo.

Por exemplo, FR-fr.utf8 é transformado em fr_FR, UZ-cYRL-uz é transformado em uz_Cyrl_UZ, etc.

use Symfony\Component\Validator\Constraints as Assert;

class User
{
/** @Assert\Locale(canonicalize = true) */
protected $locale;
}

Adicionado suporte para validar URLs sem protocolo

O validador Url define a opção protocols para configurar os protocolos permitidos para as URLs (['http', 'https'] por padrão). No Symfony 4.1 foi adicionada uma nova opção booleana chamada relativeProtocol. Se true, as URLs sem protocolo (por exemplo, //example.com) também são consideradas válidas:

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
/** @Assert\Url(relativeProtocol = true) */
protected $bioUrl;
}

Tradução de: New in Symfony 4.1: Validator improvements

--

--