beastbytes / phone-number-validator
National and international phone number validator
Requires
- php: ^8.1
- yiisoft/validator: ^2.0
Requires (Dev)
- beastbytes/n6l-phone-number-data-php: ^2.0
- consolidation/robo: ^4.0
- phpunit/phpunit: ^10.0
- roave/infection-static-analysis-plugin: ^1.0
- roave/security-advisories: dev-latest
- spatie/phpunit-watcher: ^1.0
- vimeo/psalm: ^5.0
- yiisoft/test-support: ^3.0
- yiisoft/translator-message-php: ^1.0
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