beastbytes/phone-number-validator

National and international phone number validator

2.0.0 2024-10-02 21:35 UTC

This package is auto-updated.

Last update: 2024-12-02 22:04:32 UTC


README

Provides validation for national and international phone numbers.

NOTE: phone-number-validator does not guarantee that a phone number exists, just that it is in a valid format.

International Phone Numbers

International phone numbers are validated against the Extensible Provisioning Protocol (EPP) and/or ITU-T Recommendation E.123 (“Notation for national and i11l telephone numbers, e-mail addresses and Web addresses”) and ITU-T Recommendation E.164 (“The international public telecommunication numbering plan”) formats.

Note: EPP formatted phone numbers are valid ITU phone numbers.

National Phone Numbers

To validate national phone numbers a N6lPhoneNumberDataInterface implementation is required, e.g. beastbytes/n6l-phone-number-data-php which provides all numbering plans in the ITU T0202 National Numbering Plans

National phone numbers are validated against country specific formats; they can be validated against a single country, a subset of, or all countries provided by the N6lPhoneNumberDataInterface implementation.

License

For license information see the LICENSE file.

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist beastbytes/phone-number-validator

or add

"beastbytes/phone-number-validator": "^1.0.0"

to the 'require' section of your composer.json.

Unit testing

The package is tested with PHPUnit. To run tests:

./vendor/bin/phpunit

Mutation testing

The package tests are checked with Infection mutation framework with Infection Static Analysis Plugin. To run it:

./vendor/bin/roave-infection-static-analysis-plugin

Static analysis

The code is statically analyzed with Psalm. To run static analysis:

./vendor/bin/psalm