marjovanlier/southafricanidvalidator

一个复杂的PHP包,用于通过检查结构规则和上下文规则来验证南非身份证号码


README

目录

简介

SouthAfricanIDValidator PHP包是您验证南非身份证号码的全面解决方案,这对于任何处理或验证南非身份的应用程序至关重要。身份证号码的验证至关重要,因为它确保身份证符合南非身份文件中概述的特定结构和上下文标准。此包以其易用性、高准确性和全面的验证检查而突出,包括结构和格式验证、出生日期验证、性别、国籍状态和种族指示数字,以及应用Luhn算法进行校验位验证。

徽章

Packagist Version Packagist Downloads Packagist License PHP from Packagist Latest Stable Version PHPStan Enabled Phan Enabled Psalm Enabled codecov Qodana

特性

  • 验证南非身份证号码的结构和格式。
  • 检查身份证号码中编码的出生日期的有效性。
  • 验证性别、国籍状态和种族指示数字。
  • 应用Luhn算法验证校验位。

系统要求

  • PHP版本8.2或更高。

安装

入门

要开始在项目中使用SouthAfricanIDValidator,请按照以下简单步骤操作

  1. 通过Composer安装 - 运行以下命令安装包

    composer require marjovanlier/southafricanidvalidator
  2. 基本用法示例 - 安装后,您可以使用以下代码片段开始验证南非身份证号码

    use MarjovanLier\SouthAfricanIDValidator\SouthAfricanIDValidator;
    
    // Instantiate the ID validator
    $validator = new SouthAfricanIDValidator();
    
    // Validate a South African ID number
    $idNumber = 'Your South African ID number here';
    $isValid = $validator->luhnIDValidate($idNumber);
    
    if ($isValid === true) {
        echo 'The ID number is valid.';
    } elseif ($isValid === false) {
        echo 'The ID number is invalid.';
    } else {
        echo 'The ID number does not meet specific constraints.';
    }

要将SouthAfricanIDValidator集成到您的项目中,请通过Composer安装它

composer require marjovanlier/southafricanidvalidator

使用

要验证南非身份证号码,实例化SouthAfricanIDValidator类并调用luhnIDValidate方法

use MarjovanLier\SouthAfricanIDValidator\SouthAfricanIDValidator;

$idNumber = 'Your South African ID number here';

$result = SouthAfricanIDValidator::luhnIDValidate($idNumber);

if ($result) {
    echo 'The ID number is valid.';
} elseif (!$result) {
    echo 'The ID number is invalid.';
} else {
    echo 'The ID number does not meet specific constraints.';
}

luhnIDValidate方法返回true表示身份证号码有效,返回false表示无效,如果未满足特定标准(例如,国籍状态数字不正确),则返回null

故障排除

遇到问题?以下是一些常见问题的解决方案

  • 问题:通过Composer安装包有困难。

    • 解决方案:请确保您的PHP版本至少为8.2,且Composer已正确安装在您的系统上。对于持续性问题,请尝试使用composer clear-cache清除Composer的缓存并再次尝试安装。
  • 问题:验证始终返回false

    • 解决方案:请确保正在验证的身份证号码符合南非身份证标准的格式YYMMDDSSSSCAZ,共13位数字。
  • 问题:验证对某些身份证返回null

    • 解决方案:通常,null响应表示国籍状态数字(第11位字符)存在问题。此数字必须是'0'、'1'或'2',分别代表南非公民、永久居民或难民。

如需进一步帮助或报告新问题,请访问我们的GitHub问题跟踪器。

测试

首先,通过运行composer install --dev确保您已安装所有必要的开发依赖项。然后,运行以下命令执行包中包含的单元测试

composer tests

贡献

我们重视对SouthAfricanIDValidator包的贡献!以下是您如何帮助的方式

  1. 报告问题或建议改进 - 发现了一个错误或者有改进包的想法?请先在我们GitHub仓库中提交一个问题。这样我们可以在你开始编码之前讨论可能的更改。

  2. 贡献代码 - 分支仓库,然后为你的工作创建一个新的分支,遵循我们的分支策略指南。这有助于保持组织结构并确保贡献的一致性。

  3. 遵循我们的编码标准 - 编写符合我们编码标准的干净、易读的代码。这使每个人都能更容易理解和维护。

  4. 编写或更新测试 - 通过编写测试来确保新功能或按需更新现有测试,以帮助确保可靠性。

  5. 提交拉取请求 - 完成更改了吗?针对主分支提交一个包含你所做更改及其原因的详细说明的拉取请求。

你的贡献对于提高SouthAfricanIDValidator包对每个人的质量至关重要!

许可信息

SouthAfricanIDValidator自豪地开源,遵循MIT许可证。此许可证允许你在私人项目和商业项目中使用、修改、分发和贡献回该包,但必须在任何软件副本中包含原始版权和许可证声明。有关你的权利和义务的完整详情,请参阅许可证文件

发布说明

通过查看我们的GitHub发布页面来保持更新。