Новое в Symfony 4.3: Улучшены финансовые валидаторы

Международный номер банковского счета (IBAN) – это международно согласованная система идентификации банковских счетов через национальные границы. Идентификационный код банка (BIC) – это уникальный идентификационный код для финансовых и нефинансовых организаций, определенный в стандарте ISO-9362.

Хотя оба кода являются независимыми, они могут быть проверены в комбинации, чтобы подтвердить, что оба принадлежат, по крайней мере, к одной и той же стране. В Symfony 4.3 улучшили Bic валидатор, чтобы позволить проверять коды BIC и IBAN вместе.

Во-первых, вы можете передать код IBAN, используя новую опцию iban:

use Symfony\Component\Validator\Constraints as Assert;
// ...

public static function loadValidatorMetadata(ClassMetadata $metadata)
{
    $metadata->addPropertyConstraint(
        'businessIdentifierCode', 
        new Assert\Bic([
            'iban' => 'FR1420041010050500013M02606',
        )]
    );
}

Вы также можете использовать новую опцию ibanPropertyPath, чтобы определить свойство объекта, в котором хранится код IBAN:

use Symfony\Component\Validator\Constraints as Assert;
// ...

class Transaction
{
    /**
     * @Assert\Bic(ibanPropertyPath="accountNumber")
     */
    protected $businessIdentifierCode;

    /**
     * @Assert\Iban
     */
    protected $accountNumber;

    // public getters for properties ...
}

Universal Air Travel Plan (UATP) – это сеть платежей, принадлежащая авиакомпании и принимаемая тысячами продавцов для оплаты авиа, железнодорожных, гостиничных и туристических услуг. В Symfony 4.3 улучшили ограничение CardScheme, чтобы добавить поддержку новой схемы UATP:

// ...

class Transaction
{
    /**
     * @Assert\CardScheme(
     *     schemes={"AMEX", "MASTERCARD", "UATP", "VISA"},
     *     message="Your credit card number is invalid."
     * )
     */
    protected $cardNumber;
}