letraceursnork / russian-validators
Библиотека для валидации русских идентификаторов таких, как ИНН, СНИЛС, ОГРН/ОГРНИП и др.
Installs: 8 440
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 4
Requires
- php: >=8.0
- ext-bcmath: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.13
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2025-06-06 11:48:05 UTC
README
Описание
Пакет предназначен для валидации различных идентификаторов, принятых в РФ - СНИЛС, ИНН, ОГРН/ОГРНИП и КПП, поскольку "международные" валидаторы (напр., из пакета Symfony) не учитывают их отдельно от VAT и прочих международных аналогов
В описании каждого класса валидатора приведена ссылка на Википедию и, по возможности, на соответствующий закон Правительства, поясняющий, почему тот или иной идентификатор валидируется именно так
Установка с помощью composer
composer install letraceursnork/russian-validators
Требования
Пакет требует всего двух пунктов:
- PHP 8.0+
- Установленную и подключенную библиотеку
BCMath
(ext-bcmath
)
Пример использования
use LTS\RussianValidators\InnValidator; //use LTS\RussianValidators\KppValidator; //use LTS\RussianValidators\OgrnipValidator; //use LTS\RussianValidators\OgrnValidator; //use LTS\RussianValidators\SnilsValidator; $value = '<SOME_INN>'; $validator = new InnValidator(); // или любой другой класс валидатора из перечисленных выше $validator->setPurifyPattern('[-+\/\*\\_\.,\s]'); // установить $pattern для функции preg_replace. Все символы, попадающие под $pattern будут удалены из строки перед валидацией. Позволяет очистить строку от разделителей - $pattern по-умолчанию `[-+\/\*\\_\.,\s]` $is_valid = $validator->validate($value); // true|false $validator->throwErrorOnInvalid(); // При неудачной валидации не возвращает false, а выбрасывает исключение типа InvalidArgumentException try { $is_valid = $validator->validate($value); // true, если валидация успешна } catch(InvalidArgumentException $exception) { // Обработка исключения }