vonlab / kz-iin
一个用于生成和验证哈萨克斯坦个人身份证号码(IIN)的库。
v1.0.5
2024-06-09 16:36 UTC
Requires
- php: ^8.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.58
- mockery/mockery: ^1.6
- phpstan/phpstan: ^1.11
- phpstan/phpstan-mockery: ^1.1
- phpunit/phpunit: ^9.0
README
此库提供了验证、解析和生成哈萨克斯坦个人身份证号码(IIN)的工具。
关于哈萨克斯坦IIN
在哈萨克斯坦,个人身份证号码(IIN)是对个人分配的唯一标识符。IIN由12位数字组成,其中每个数字代表个人特定的信息,例如出生日期、性别以及同一天出生的个人唯一标识符。有关IIN结构和目的的更详细信息,请参阅此处。
功能
- 验证哈萨克斯坦IIN
- 解析哈萨克斯坦IIN以提取有用信息
- 生成有效的哈萨克斯坦IIN
- 处理各种验证错误的异常处理
安装
您可以通过composer安装此包
composer require vonlab/kz-iin
用法
验证IIN
要验证IIN,请使用IinValidator
类。
带有异常处理
<?php use VonLab\KzIin\IinParser; use VonLab\KzIin\IinValidator; $validator = new IinValidator(new IinParser()); try { if ($validator->validate('your-iin-here')) { echo "IIN is valid."; } } catch (\Exception $e) { echo "Validation failed: " . $e->getMessage(); }
不带异常处理
use VonLab\KzIin\IinParser; use VonLab\KzIin\IinValidator; $validator = new IinValidator(new IinParser()); if ($validator->isValid('your-iin-here')) { echo "IIN is valid."; } else { echo "Validation failed: " . $validator->getError(); }
IIN生成
要生成IIN,请使用IinGenerator
类。
<?php use VonLab\KzIin\IinGenerator; use VonLab\KzIin\Enums\GenderEnum; use VonLab\KzIin\Data\BirthDate; // Generate an IIN with random birthdate and gender $generator = new IinGenerator(); $iin = $generator->generate(); echo "Generated IIN: $iin"; // Generate an IIN with specific birthdate and gender $birthDate = new BirthDate(1990, 1, 1); $gender = GenderEnum::Male; $iin = $generator->generate($birthDate, $gender); echo "Generated IIN: $iin";
IIN解析
要解析IIN,请使用IinParser
类。
<?php use VonLab\KzIin\IinParser; use VonLab\KzIin\Utils\DateConverter; use VonLab\KzIin\Exceptions\InvalidIinFormatException; $parser = new IinParser(); try { $iinData = $parser->parse('your-iin-here'); echo "Birth Date: " . DateConverter::toDateString($iinData->birthDate); echo "Year of birth: " . $iinData->birthDate->year; echo "Month of birth: " . $iinData->birthDate->month; echo "Day of birth: " . $iinData->birthDate->day; echo "Gender: " . $iinData->gender->value; echo "Century Gender Digit: " . $iinData->centuryGenderDigit; echo "Registration Number: " . $iinData->registrationNumber; echo "Control Digit: " . $iinData->controlDigit; } catch (InvalidIinFormatException $e) { echo "Invalid IIN format: " . $e->getMessage(); }
附加信息
异常类
该库提供了特定异常类来处理各种验证错误
InvalidIinLengthException
InvalidIinCharacterException
InvalidBirthDateException
InvalidCenturyGenderDigitException
InvalidControlDigitException
InvalidIinFormatException
实用类
该库包括用于内部计算和日期处理的实用类
IinHelper
:包含校验和计算和世纪/性别数字提取的方法。DateConverter
:用于日期格式转换的实用类。
Docker支持
包含用于设置开发环境的最小docker-compose.yml
。
测试
该库包括一套全面的单元测试。要运行测试,请使用以下命令
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
支持
如果您遇到任何问题或有疑问,请随时在GitHub上提交问题。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。