Current File : //home/tradevaly/prioyshi.com/project/vendor/fakerphp/faker/src/Faker/Provider/PhoneNumber.php
<?php

namespace Faker\Provider;

use Faker\Calculator\Luhn;

class PhoneNumber extends Base
{
    protected static $formats = ['###-###-###'];

    /**
     * @see https://github.com/giggsey/libphonenumber-for-php/blob/master/src/CountryCodeToRegionCodeMap.php
     */
    protected static $e164Formats = [
        '+1##########',
        '+7##########',
        '+20##########',
        '+27##########',
        '+30##########',
        '+31##########',
        '+32##########',
        '+33##########',
        '+34##########',
        '+36##########',
        '+39##########',
        '+40##########',
        '+41##########',
        '+43##########',
        '+44##########',
        '+45##########',
        '+46##########',
        '+47##########',
        '+48##########',
        '+49##########',
        '+51##########',
        '+52##########',
        '+53##########',
        '+54##########',
        '+55##########',
        '+56##########',
        '+57##########',
        '+58##########',
        '+60##########',
        '+61##########',
        '+62##########',
        '+63##########',
        '+64##########',
        '+65##########',
        '+66##########',
        '+81##########',
        '+82##########',
        '+84##########',
        '+86##########',
        '+90##########',
        '+91##########',
        '+92##########',
        '+93##########',
        '+94##########',
        '+95##########',
        '+98##########',
        '+211##########',
        '+212##########',
        '+213##########',
        '+216##########',
        '+218##########',
        '+220##########',
        '+221##########',
        '+222##########',
        '+223##########',
        '+224##########',
        '+225##########',
        '+226##########',
        '+227##########',
        '+228##########',
        '+229##########',
        '+230##########',
        '+231##########',
        '+232##########',
        '+233##########',
        '+234##########',
        '+235##########',
        '+236##########',
        '+237##########',
        '+238##########',
        '+239##########',
        '+240##########',
        '+241##########',
        '+242##########',
        '+243##########',
        '+244##########',
        '+245##########',
        '+246##########',
        '+247##########',
        '+248##########',
        '+249##########',
        '+250##########',
        '+251##########',
        '+252##########',
        '+253##########',
        '+254##########',
        '+255##########',
        '+256##########',
        '+257##########',
        '+258##########',
        '+260##########',
        '+261##########',
        '+262##########',
        '+263##########',
        '+264##########',
        '+265##########',
        '+266##########',
        '+267##########',
        '+268##########',
        '+269##########',
        '+290##########',
        '+291##########',
        '+297##########',
        '+298##########',
        '+299##########',
        '+350##########',
        '+351##########',
        '+352##########',
        '+353##########',
        '+354##########',
        '+355##########',
        '+356##########',
        '+357##########',
        '+358##########',
        '+359##########',
        '+370##########',
        '+371##########',
        '+372##########',
        '+373##########',
        '+374##########',
        '+375##########',
        '+376##########',
        '+377##########',
        '+378##########',
        '+380##########',
        '+381##########',
        '+382##########',
        '+383##########',
        '+385##########',
        '+386##########',
        '+387##########',
        '+389##########',
        '+420##########',
        '+421##########',
        '+423##########',
        '+500##########',
        '+501##########',
        '+502##########',
        '+503##########',
        '+504##########',
        '+505##########',
        '+506##########',
        '+507##########',
        '+508##########',
        '+509##########',
        '+590##########',
        '+591##########',
        '+592##########',
        '+593##########',
        '+594##########',
        '+595##########',
        '+596##########',
        '+597##########',
        '+598##########',
        '+599##########',
        '+670##########',
        '+672##########',
        '+673##########',
        '+674##########',
        '+675##########',
        '+676##########',
        '+677##########',
        '+678##########',
        '+679##########',
        '+680##########',
        '+681##########',
        '+682##########',
        '+683##########',
        '+685##########',
        '+686##########',
        '+687##########',
        '+688##########',
        '+689##########',
        '+690##########',
        '+691##########',
        '+692##########',
        '+800##########',
        '+808##########',
        '+850##########',
        '+852##########',
        '+853##########',
        '+855##########',
        '+856##########',
        '+870##########',
        '+878##########',
        '+880##########',
        '+881##########',
        '+882##########',
        '+883##########',
        '+886##########',
        '+888##########',
        '+960##########',
        '+961##########',
        '+962##########',
        '+963##########',
        '+964##########',
        '+965##########',
        '+966##########',
        '+967##########',
        '+968##########',
        '+970##########',
        '+971##########',
        '+972##########',
        '+973##########',
        '+974##########',
        '+975##########',
        '+976##########',
        '+977##########',
        '+979##########',
        '+992##########',
        '+993##########',
        '+994##########',
        '+995##########',
        '+996##########',
        '+998##########',
    ];

    /**
     * @example '555-123-546'
     */
    public function phoneNumber()
    {
        return static::numerify($this->generator->parse(static::randomElement(static::$formats)));
    }

    /**
     * @example +11134567890
     *
     * @return string
     */
    public function e164PhoneNumber()
    {
        return static::numerify($this->generator->parse(static::randomElement(static::$e164Formats)));
    }

    /**
     * International Mobile Equipment Identity (IMEI)
     *
     * @see http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity
     * @see http://imei-number.com/imei-validation-check/
     *
     * @example '720084494799532'
     *
     * @return int $imei
     */
    public function imei()
    {
        $imei = (string) static::numerify('##############');
        $imei .= Luhn::computeCheckDigit($imei);

        return $imei;
    }
}