Skip to content

Latest commit

 

History

History
55 lines (47 loc) · 3.88 KB

File metadata and controls

55 lines (47 loc) · 3.88 KB

Валидатор данных, Validator

Статический класс PaynetEasy\PaynetEasyApi\Util\Validator предоставляет следующие методы для валидации данных:

  • validateByRule(): валидация с помощью предопределенного правила или регулярного выражения

validateByRule(): валидация с помощью предопределнного правила

Для удобной валидации данных в Validator реализован метод validateByRule() и набор констант с правилами валидации. Список доступных правил:

Константа Правило валидации Описание
Validator::EMAIL FILTER_VALIDATE_EMAIL Validate value as email
Validator::IP FILTER_VALIDATE_IP Validate value as IP address
Validator::URL FILTER_VALIDATE_URL Validate value as URL
Validator::MONTH in_array($month, range(1, 12)) Validate value as month
Validator::YEAR #^[0-9]{1,2}$#i Validate value as year
Validator::PHONE #^[0-9-+()\s]{6,15}$#i Validate value as phone number
Validator::AMOUNT #^[0-9.]{1,11}$#i Validate value as payment amount
Validator::CURRENCY #^[A-Z]{1,3}$#i Validate value as currency
Validator::CVV2 #^[\S\s]{3,4}$#i Validate value as card verification value
Validator::ZIP_CODE #^[\S\s]{1,10}$#i Validate value as zip code
Validator::COUNTRY #^[A-Z]{1,2}$#i Validate value as two-letter country or state code
Validator::DATE #^[0-9]{6}$#i Validate value as date in format MMDDYY
Validator::SSN #^[0-9]{1,4}$#i Validate value as last four digits of social security number
Validator::CREDIT_CARD_NUMBER #^[0-9]{1,20}$#i Validate value as credit card number
Validator::ID #^[\S\s]{1,20}$#i Validate value as ID (client, paynet, card-ref, etc.)
Validator::LONG_STRING #^[\S\s]{1,128}$#i Validate value as long string
Validator::MEDIUM_STRING #^[\S\s]{1,50}$#i Validate value as medium string

Метод принимает три параметра:

  • Значение для валидации
  • Имя правила или регулярное выражение для валидации
  • Флаг, определяющий поведение метода в том случае, если значение не прошло валидацию
    • true - будет брошено исключение
    • false - будет возвращен булевый результат проверки Пример использования метода:
use PaynetEasy\PaynetEasyApi\Util\Validator;
use PaynetEasy\PaynetEasyApi\Exception\ValidationException;

var_dump(Validator::validateByRule('test@mail.com', Validator::EMAIL, false));  // true
var_dump(Validator::validateByRule('some string', '#\d#', false));              // false

// prints 'invalid'
try
{
    Validator::validateByRule('test[at]mail.com', Validator::EMAIL);
    print 'valid';
}
catch (ValidationException $e)
{
    print 'invalid';
}