ronanguilloux/isocodes

PHP 库 - ISO、国际金融、公共行政部门、GS1、书籍和音乐行业、多个国家的电话号码和邮编的验证器

2.3.9 2023-06-13 11:52 UTC

README

PHP 库 - ISO、国际金融、公共行政部门、GS1、书籍行业、多个国家的电话号码和邮编的验证器

用法

// Sending letters to the Labrador Islands ?
$isCanadian = ZipCode::validate('A0A 1A0', 'CA');

// Checking out your e-commerce shopping cart?
$isBankable = CreditCard::validate('12345679123456');

// Transferring money worldwide?
$isSwiftBic = SwiftBic::validate('CEDELULLXXX');

// Paying your taxes in Madrid?
$isTaxableInSpain = Nif::validate('A999999L');

// Receiving containers from Port of Shanghai?
$isShippingContainerCode = Sscc::validate('806141411234567896');

// Publishing books?
$isPublished = Isbn::validate('2-2110-4199-X')

// Trading items with GTIN barcodes in GS1 system?
$isBarcode = Ean13::validate('4719512002889')

// Calling phone numbers in Palo Alto?
$isPhonable = PhoneNumber::validate('+1-650-798-2800', 'US')

// Buying Apple stocks?
$isISIN = Isin::validate('US0378331005'); // Apple Inc. (AAPL)

// Trading Apple products?
$isCUSIP = Cusip::validate('037833100'); // Apple Inc. (AAPL)

// Checking your iPhone device is valid?
$isDevice = Imei::validate('352066060926230');

// Selling your Honda Civic?
$isVin = VinNA::validate('1HGBH41JXMN109186');    

可用的 ISO 代码验证

国际金融

  • IBAN(需要 bcmath PHP 扩展)
  • SWIFT/BIC
  • BBAN(RIB,需要 bcmath PHP 扩展)
  • 信用卡号码
  • SEDOL(证券交易所代码)

制造业

  • ISBN - 国际标准书号,10位和13位数字
  • ISMN - 国际标准音乐号
  • ISWC - 国际标准音乐作品代码
  • IMEI - 国际移动设备身份码
  • VIN - 车辆识别码 - ISO 3779 & ISO 4030

公共行政部门

  • ISIN - 国际证券识别码
  • 特定国家的增值税/税制:各种增值税号码格式
  • 法国:社会保险号码 / INSEE,SIREN,SIRET,邮政编码,类型 1/2 规范 B2
  • 美国:社会保险号码
  • 英国:国家保险号码(NINO)
  • 比利时:结构化通信("communication structurée")
  • 西班牙:NIF,NIE(税务/外国身份证号码)& CIF(税务识别码)
  • 荷兰:居民服务号码 / 公民服务号码(BSN)
  • 芬兰:HETU,个人识别码(芬兰个人身份码)
  • 瑞士:商业机构 UID(增值税)号码 / 企业识别号码

GS1 特定号码/标识符

  • GTIN - 全球贸易项目编号:GTIN-8,GTIN-12,GTIN-13,GTIN-14
  • GLN - 全球位置编号
  • SSCC - 序列货物集装箱代码
  • GRAI - 全球可回收资产标识符
  • GSRN - 全球服务关系编号
  • GDTI - 全球文档类型标识符
  • UDI - 唯一设备标识(其中的 GTIN 部分)
  • 较旧/已弃用的标识符,现在在 GTIN 中:EAN-8,EAN-13,UCC-13,UPC-A,DUN-14,ITF-14

杂项

  • 175 多个国家的 ZIP 代码验证器
  • 全球所有国家和地区的电话号码验证

每个代码都有自己的验证器。每个验证器都有一个单元测试用例来说明。

IsoCodes 与 PHP 项目积极支持的 PHP 所有版本兼容。

构建状态

License Latest Stable Version Build Status Scrutinizer Code Quality SymfonyInsight Coverage Status Total Downloads Monthly Downloads Daily Downloads

Scrutinizer CI 上可用的结果持续检查(phpdoc,phpmd,phpcc 等)

bcmath 作为某些验证器的可选扩展

对于 IBAN & BBAN ISO 代码,PHP 必须使用 "--enable-bcmath" 编译以进行任意精度数学检查。通常,您已经在使用 PHP 版本中捆绑了 bcmath,因为许多常见的 PHP 软件包(如 php-cliphp-fpmphp5-cgilibapache2-mod-php5 等)在稳定的 GNU/Linux 发行版中(如 Debian)已作为内置模块包含 bcmath

安装

通过 GitHub

$ git clone git@github.com:ronanguilloux/IsoCodes.git

自动加载是 PSR-0 友好的。

通过 PackagistComposer

使用 Composer 需要 ronanguilloux/isocodes 的最新版本

$ composer require ronanguilloux/isocodes

包装器

使用 Symfony 验证器

安装 Soullivaneuh/IsoCodesValidator 以使 IsoCodes 在 SymfonySilex 中作为验证器工作。

使用 CakePHP 3

安装 gourmet/validation 以使 IsoCodes 在 CakePHP 3 中作为验证器工作。

使用 Laravel

安装 pixelpeter/laravel5-isocodes-validation 以使 IsoCodes 在 Laravel 5 中作为验证器工作。

支持的 PHP 版本

  • 7.3
  • 7.4

单元测试

$ phpunit --testdox --coverage-text

制作工具

仅用于开发与贡献目的,Makefile 提供了各种工具以检查您的代码风格、质量以及测试覆盖率。

Usual tasks:

	To initialize vendors:  make
	To check code quality:	make quality
	To run tests suite:	    make tests
	To fix code style:	    make cs-fix

Other specific tasks:

	To evaluate code coverage:			        make codecoverage
	To run a simple continuous tests server:	make continuous
	To dry-fix code style issues:			    make dry-fix
	To evaluate code quality stats:			    make stats
	To update vendors using Composer:		    make update

质量保证报告

IsoCodes 的质量计划主要基于 phpunit:它运行 980+ 个单元测试,包括有效和无效的条目集。测试值主要是真实数据或来自标准文档的文档化示例,以及一些手动制作的值。

composer.json 中已包含这些 Php Quality Assurance Toolchain 库。

只需运行

$ make stats -i

XML 报告输出将生成在新的 ./build 文件夹中

使用 Coveralls.io 构建的代码覆盖率报告。有关如何使用 PHPUnit 生成此类代码覆盖率报告的说明,请参阅 如何生成此类代码覆盖率报告

许可信息

贡献代码

问题队列可以在以下位置找到: https://github.com/ronanguilloux/IsoCodes/issues。请参阅 CONTRIBUTING.md

特别感谢

贡献者列表:非常感谢所有人!

非常感谢 JetBrains PhpStorm 从一开始就赞助 IsoCode 库的开发!任何有被接受的 PR 的贡献者都可能获得 PhpStorm IDE 的开源许可证密钥。只需通过电子邮件 联系 Ronan 即可获取一个。