Skip to content
This repository has been archived by the owner on Dec 11, 2020. It is now read-only.

Commit

Permalink
[fi_FI] Improve phone number generator
Browse files Browse the repository at this point in the history
With this patch, generated phone numbers are more realistic.
It's also easier to improve the formats in the future, if needed.
  • Loading branch information
Tommi Finnilä committed Oct 10, 2016
1 parent 6e17ce0 commit 8cdb51a
Showing 1 changed file with 90 additions and 11 deletions.
101 changes: 90 additions & 11 deletions src/Faker/Provider/fi_FI/PhoneNumber.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,96 @@

class PhoneNumber extends \Faker\Provider\PhoneNumber
{
/**
* @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/localcallsandtelecommunicationsareas/mapoftelecommunicationsareas.html
* @var array
*/
protected static $landLineareaCodes = array(
'02',
'03',
'05',
'06',
'08',
'09',
'013',
'014',
'015',
'016',
'017',
'018',
'019',
);

/**
* @link https://www.viestintavirasto.fi/en/internettelephone/numberingoftelecommunicationsnetworks/mobilenetworks/mobilenetworkareacodes.html
* @var array
*/
protected static $mobileNetworkAreaCodes = array(
'040',
'050',
'044',
'045',
);

protected static $numberFormats = array(
'### ####',
'#######',
);

protected static $formats = array(
'+358 (40) ### ####',
'+358 (50) ### ####',
'+358 40 ### ####',
'+358 50 ### ####',
'040 ### ####',
'050 ### ####',
'###-########',
'### #######',
'040-#######',
'050-#######',
'(###) #######'
'+358 ({{ e164MobileNetworkAreaCode }}) {{ numberFormat }}',
'+358 {{ e164MobileNetworkAreaCode }} {{ numberFormat }}',
'+358 ({{ e164landLineAreaCode }}) {{ numberFormat }}',
'+358 {{ e164landLineAreaCode }} {{ numberFormat }}',
'{{ mobileNetworkAreaCode }}{{ separator }}{{ numberFormat }}',
'{{ landLineAreaCode }}{{ separator }}{{ numberFormat }}',
);

/**
* @return string
*/
public function landLineAreaCode()
{
return static::randomElement(static::$landLineareaCodes);
}

/**
* @return string
*/
public function e164landLineAreaCode()
{
return substr(static::randomElement(static::$landLineareaCodes), 1);
}

/**
* @return string
*/
public function mobileNetworkAreaCode()
{
return static::randomElement(static::$mobileNetworkAreaCodes);
}

/**
* @return string
*/
public function e164MobileNetworkAreaCode()
{
return substr(static::randomElement(static::$mobileNetworkAreaCodes), 1);
}

/**
* @return string
*/
public function numberFormat()
{
return static::randomElement(static::$numberFormats);
}

/**
* @return string
*/
public function separator()
{
return static::randomElement(array(' ', '-'));
}
}

0 comments on commit 8cdb51a

Please sign in to comment.