Новое в Symfony 4.4: Улучшение валидатора типа значений

Валидтор типов, включенное в компонент Validator, проверяет, что данное значение имеет определенный тип данных. Этот тип может быть любым из допустимых типов PHP, любой из функций PHP ctype (например, alnum, alpha, digit и т. Д.), А также FQCN любого класса:

// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    /**
     * @Assert\Type("Ramsey\Uuid\UuidInterface")
     */
    protected $id;

    /**
     * @Assert\Type("string")
     */
    protected $firstName;

    // ...
}

Начиная с Symfony 4.4, проверяемый тип может быть массивом типов, поэтому вы можете проверить, является ли данный тип значения одним из нескольких возможных типов. В следующем примере свойство $accessCode может содержать только буквы или только цифры, но не оба:

// src/Entity/Author.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class Author
{
    // ...

    /**
     * @Assert\Type(type={"alpha", "digit"})
     */
    protected $accessCode;
}