PHP Classes

File: src/DataTypes/PhoneValidator.php

Recommend this page to a friend!
  Packages of Amirreza Ebrahimi   HeroQR Powerful PHP QR Code Library to generate PNG, SVG, PDF, Logos Ready to Use with Laravel   src/DataTypes/PhoneValidator.php   Download  
File: src/DataTypes/PhoneValidator.php
Role: Class source
Content type: text/plain
Description: Class source
Class: HeroQR Powerful PHP QR Code Library to generate PNG, SVG, PDF, Logos Ready to Use with Laravel
Generate QR code images in several formats
Author: By
Last change:
Date: 22 days ago
Size: 909 bytes
 

Contents

Class file image Download
<?php

namespace HeroQR\DataTypes;

use
libphonenumber\PhoneNumberUtil;
use
HeroQR\Contracts\DataTypes\AbstractDataType;

/**
 * Validates phone numbers using Google's libphonenumber library
 *
 * Example:
 * Phone::validate("+989358919279");
 */
class PhoneValidator extends AbstractDataType
{
    public static function
validate(string $data): bool
   
{
       
$phone = trim($data);

        if (!
class_exists(PhoneNumberUtil::class)) {
            throw new \
RuntimeException(
               
'giggsey/libphonenumber-for-php is required. Install with: composer require giggsey/libphonenumber-for-php'
           
);
        }

       
$phoneUtil = PhoneNumberUtil::getInstance();

        try {
           
$phoneNumber = $phoneUtil->parse($phone, null);
            return
$phoneUtil->isValidNumber($phoneNumber);
        } catch (
NumberParseException $e) {
            return
false;
        }
    }
}