loophp/tin

提供纳税人识别号验证工具

资助包维护!
drupol

1.1.1 2023-05-31 12:05 UTC

README

Latest Stable Version GitHub stars Total Downloads GitHub Workflow Status Type Coverage License

纳税人识别号 (TIN) 验证器

描述

一个用于验证个人纳税人识别号 (TIN) 的库。这是一个基于 Java 库的库,这就是为什么代码还没有反映 PHP 的最佳实践(尚未)。

支持国家

  • 奥地利 (AT)
  • 比利时 (BE)
  • 保加利亚 (BG)
  • 克罗地亚 (HR)
  • 塞浦路斯 (CY)
  • 捷克共和国 (CZ)
  • 丹麦 (DK)
  • 爱沙尼亚 (EE)
  • 芬兰 (FI)
  • 法国 (FR)
  • 德国 (DE)
  • 希腊 (GR) - 仅大小
  • 匈牙利 (HU)
  • 爱尔兰 (IE)
  • 意大利 (IT)
  • 拉脱维亚 (LV) - 无校验位
  • 立陶宛 (LT)
  • 卢森堡 (LU)
  • 马耳他 (MT) - 无校验位
  • 荷兰 (NL)
  • 波兰 (PL)
  • 葡萄牙 (PT)
  • 罗马尼亚 (RO) - 无校验位
  • 斯洛伐克 (SK)
  • 斯洛文尼亚 (SI)
  • 西班牙 (ES)
  • 瑞典 (SE)
  • 英国 (UK) - 仅结构

如果您的国家不在列表中,请随意打开一个带有您国家代码的问题,并提供规范链接。理想情况下,您可以提供包含算法和测试的 pull request。

要求

  • PHP >= 8.1

使用 & API

简单检查 TIN 号的合法性

<?php

include __DIR__ . '/vendor/autoload.php';

use loophp\Tin\TIN;

$bool = TIN::fromSlug('be71102512345')->isValid();

如果您想了解数字不合法的原因,可以使用

<?php

include __DIR__ . '/vendor/autoload.php';

use loophp\Tin\TIN;
use loophp\Tin\Exception\TINException;

try {
    TIN::fromSlug('be71102512345')->check();
} catch (TINException $e) {
    // do something with the exception.
}

严格模式

如果您想使用更严格的方法(即不规范化 TIN 号,即使用原始 TIN 号),请在以下示例中在 checkisValid 函数中使用 strict 参数(在 #39 中引入)。默认情况下,它设置为 false

TIN::fromSlug('be7110.2512345')->check(); // Not strict
TIN::fromSlug('be7110.2512345')->check(strict: false); // Not strict
TIN::fromSlug('be7110.2512345')->check(true); // Strict
TIN::fromSlug('be7110.2512345')->check(strict: true); // Strict

安装

composer require loophp/tin

代码质量,测试和基准

每次向库中引入更改时,Github 都会运行测试和基准测试。

该库使用 PHPSpec 编写了测试。您可以在 spec 目录中查看它们。运行 composer phpspec 以触发测试。

在每次提交之前,都会使用 GrumPHP 执行一些检查,运行 ./vendor/bin/grumphp run 以手动检查。

PHPInfection 用于确保您的代码经过适当的测试,运行 composer infection 以测试您的代码。

链接

作者

贡献

我们热烈欢迎您通过提交 pull request 贡献。我们的团队反应迅速,并将乐意在整个过程中指导您,从最初的提交到最终的解决。

如果您由于任何原因无法直接贡献代码,但仍希望支持我们的努力,请考虑赞助我们。这是表达您对我们为这个项目投入的无数小时表示感谢的一种可靠且有意义的方式。

通过在Github上赞助他们来支持我们的贡献者。