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

[fi_FI] Improve phone number generator #1054

Merged
merged 1 commit into from
Oct 12, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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(' ', '-'));
}
}