olaurendeau / IsoCodes

PHP library, validating various ISO codes such as IBAN, SWIFT/BIC, BBAN, RIB, Credit Card number, INSEE, VAT, NSS, Siren, Siret, Ssn, Uknin, & zipcode for many countries

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IsoCodes

PHP library providing various ISO code validators (list below)

Usage

// Will my letter reach the Labrador Islands ?
$isCanadian = ZipCode::validate('A0A 1A0', 'CA');

// Worldwide money transfer, anyone ?
$isBankable = CreditCard::validate('12345679123456');

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

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

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

// Should I buy Apple stock?
$isISIN = Isin::validate('US0378331005'); // Apple Inc. (AAPL)

// Is this bank account number ok?
$isSwiftBic = SwiftBic::validate('CEDELULLXXX');

ISO code Validations available:

  • International Finance: IBAN, SWIFT/BIC, BBAN (RIB), Credit Card number, SEDOL (Stock Exchange codes)
  • ZIP code validators for 175+ countries
  • Phone number validation for all countries/regions of the world
  • Industry standards: ISBN (10 & 13) and EAN13
  • ISIN: International Securities Identification Number
  • European VAT / tax system: various VAT number formats
  • France: Numéro de Sécurité Sociale / INSEE, SIREN, SIRET, Codes postaux, Clef Type 1/2 Norme B2
  • US: Social Security number
  • UK: National Insurance Number (NINO)
  • Belgium: Structured Ccommunication ("communication structurée")
  • Spain: NIF, NIE (Número de Identificación Fiscal/Extranjero) & CIF (Código de identificación fiscal)

Each code has its own validator. Each validator is illustrated by a unit test case.

IsoCodes is compatible with all versions of PHP that are actively supported by the PHP project, plus hhvm.

Build status

License Latest Stable Version Latest Unstable Version Build Status Scrutinizer Code Quality SensioLabsInsight Coverage Status Total Downloads Monthly Downloads Daily Downloads Reference Status Dependency Status

Continously inspecting results (phpdoc, phpmd, phpcc, etc.) available on Scrutinizer CI

Requirements

PHP is required to be compiled with "--enable-bcmath" for some arbitrary precision mathematic checks (IBAN & BBAN ISO-codes).

Note that common PHP packages (php-cli, php-fpm, php5-cgi, libapache2-mod-php5, etc.) in stable GNU/Linux distribution releases (such as Debian) are listed as having bcmath built in to them, as an included module.

Installing

Via GitHub

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

Autoloading is PSR-0 friendly.

Require the latest version of ronanguilloux/isocodes with Composer

$ composer require ronanguilloux/isocodes

With Symfony Validator

Install Soullivaneuh/IsoCodesValidator library to get IsoCodes working as Validator for Symfony and Silex.

With CakePHP 3 project

Install gourmet/validation library to get IsoCodes working with CakePHP 3 validation.

Unit testing

$ phpunit --testdox --coverage-text

Make utilities

For development & contribution purpose only, a Makefile provides various tools to check your code style, quality & test coverage:

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

Quality assurance report

Isocodes quality plan is mainly based on phpunit: it runs 900+ unit tests, with separated valid & invalid entry sets. Test values are mainly real data or documented examples from standard documentation, and a few handmade values.

The composer.json already includes these Php Quality Assurance Toolchain libraries:

Just run:

$ make stats -i

XML report outputs are then generated in a new ./build folder

Code covering report built using Coveralls.io. How-to generate such code coverage report using PHPUnit.

License Information

Contributing Code

The issue queue can be found at: https://github.com/ronanguilloux/IsoCodes/issues. See Contributing.md.

Special thanks

Contributors list: Many thanks to all!

Many thanks to JetBrains PhpStorm for having sponsored the IsoCode library development from the very beginning! Any contributor having an accepted PR may receive an Open Source License Key for PhpStorm IDE. Just ping Ronan via email to get one.

About

PHP library, validating various ISO codes such as IBAN, SWIFT/BIC, BBAN, RIB, Credit Card number, INSEE, VAT, NSS, Siren, Siret, Ssn, Uknin, & zipcode for many countries

License:GNU General Public License v3.0


Languages

Language:PHP 97.2%Language:Makefile 2.8%