ellisio / laravel-phone
A phone validator for Laravel using the free Twilio phone lookup service.
Installs: 26 083
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 1
Forks: 9
Open Issues: 3
Requires
- php: >=7.2.5
- illuminate/container: ^6.0|^7.0
- illuminate/contracts: ^6.0|^7.0
- illuminate/support: ^6.0|^7.0
- illuminate/validation: ^6.0|^7.0
- twilio/sdk: ^6.0
Requires (Dev)
- graham-campbell/testbench: ^5.0
- mockery/mockery: ^1.2
README
Introduction
A phone validator for Laravel 6+ using the free Twilio Lookup API.
This package gives developers the ability to validate phone numbers and format phone numbers. All data will be pulled from the Twilio Lookup API.
Validation can be configured to check if the number is valid, or if it is valid within a given list of ISO-3166-1 Alpha 2 country codes.
Installation
Install via composer:
composer require ellisio/laravel-phone
Add your Twilio credentials to your .env
file. If you don't have a Twilio account you can register one here for free.
TWILIO_ACCOUNT_SID=xxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxx
Configuration
If you want to customize the configuration for this package, you can publish the config file to /config/phone.php
by running the following command:
php artisan vendor:publish --provider=EllisIO/Phone/PhoneServiceProvider --tag=laravel-phone-config
If you want to customize the output of the validation messages, you can publish the translations file to /lang/vendor/laravel-phone
by running the following command:
php artisan vendor:publish --provider=EllisIO/Phone/PhoneServiceProvider --tag=laravel-phone-translations
Usage
Phone validation
If you need to verify that the given number is valid and that is all, use the phone
rule.
return [ 'phone' => 'required|phone', ];
Country validation
If you need to validate that the given number is valid in a list of countries, use the phone_country:US,CA
rule. You can list as many ISO-3166-1 Alpha 2 as you wish delimited by a comma.
return [ 'phone' => 'required|phone_country:US,CA', ];
Formatting phone numbers
If you want to format the phone number using INTERNATIONAL_FORMAT
use the following code:
Phone::formatNumber('5551234567');
Creating phone number objects
This library includes the ability to generate a Phone
object. This object contains the following details about a number:
countryCode
: ISO-3166 alpha 2 country code.number
: E.164 number.formattedNumber
: National formatted number.
$phone = Phone::getPhone('5551234567'); $phone->getNumber(); // Returns "+15551234567" $phone->getNationalNumber(); // Returns "5551234567" $phone->getFormattedNumber(); // Returns "(555) 123-4567" $phone->getCountry(); // Returns "US" $phone->getCountryCallingCode(); // Returns "1"
Handling invalid numbers
Sometimes you may have bad data, it happens. To handle this, simply check to see if null
was returned.
if (! $phone = Phone::getPhone('123')) { echo "Invalid number provided."; }
Support
Need help? Create an issue.