Symfony 4.1: Aperfeiçoamentos no Validador
Descontinuada a opção checkDNS do validador de URL
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