devsergeev / inn-validator
该包最新版本(2.0.3)没有可用的许可信息。
INN验证器
2.0.3
2023-10-08 10:13 UTC
Requires
- php: >=8.1
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^8
- roave/security-advisories: dev-master
README
描述
验证个体或法人INN(纳税人识别号)是否有效(12位或10位数字)。检查INN是否符合以下条件(参见维基百科)
- 由10或12个字符组成
- 仅由数字组成
- 具有正确的校验和
使用Composer安装
composer require devsergeev/inn-validator
使用示例
use \devsergeev\validators\InnValidator;
try {
InnValidator::check($inn);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
echo $e->getCode();
}
方法InnValidator::check(string $inn)
如果字符串$inn
是有效的INN,则返回true
。否则将抛出带有相应错误信息的异常。
尽管验证器有内置的INN错误信息,但您可以设置自己的信息
use \devsergeev\validators\InnValidator;
InnValidator::$messageInvalidLenght = 'Ваше сообщение о недопустимой длине ИНН';
InnValidator::$messageOnlyDigits = 'Ваше сообщение о том, что ИНН должен состоять только из цифр';
InnValidator::$messageInvalidChecksum = 'Ваше сообщение о неправильной контрольной сумме';
try {
InnValidator::check($inn);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
}
使用异常代码的示例和自定义消息的替代实现
use \devsergeev\validators\InnValidator;
try {
InnValidator::check($inn);
} catch (InvalidArgumentException $e) {
switch ($e->getCode()) {
case InnValidator::CODE_INVALID_LENGHT:
$message = 'Ваше сообщение о недопустимой длине ИНН';
break;
case InnValidator::CODE_NOT_ONLY_DIGITS:
$message = 'Ваше сообщение о том, что ИНН должен состоять только из цифр';
break;
case InnValidator::CODE_INVALID_CHECKSUM:
$message = 'Ваше сообщение о неправильной контрольной сумме';
break;
}
echo $message;
}
Docker-compose开发
创建docker-compose
docker-compose -f ./docker/docker-compose.yml --env-file ./docker/.env up
启动bash
docker-compose -f ./docker/docker-compose.yml --env-file ./docker/.env run --rm php-cli bash
安装依赖项
composer install
运行测试
vendor/bin/phpunit