From ed8773047913b0fb3f629188131684de0e87343f Mon Sep 17 00:00:00 2001
From: toin0u <dev@sbin.dk>
Date: Fri, 9 Nov 2012 17:39:18 +0100
Subject: [PATCH] Added: Danish Provider

---
 src/Faker/Provider/da_DK/Address.php     | 282 +++++++++++++++++++++++
 src/Faker/Provider/da_DK/Company.php     |  51 ++++
 src/Faker/Provider/da_DK/Internet.php    |  67 ++++++
 src/Faker/Provider/da_DK/Person.php      | 168 ++++++++++++++
 src/Faker/Provider/da_DK/PhoneNumber.php |  21 ++
 5 files changed, 589 insertions(+)
 create mode 100644 src/Faker/Provider/da_DK/Address.php
 create mode 100644 src/Faker/Provider/da_DK/Company.php
 create mode 100644 src/Faker/Provider/da_DK/Internet.php
 create mode 100644 src/Faker/Provider/da_DK/Person.php
 create mode 100644 src/Faker/Provider/da_DK/PhoneNumber.php

diff --git a/src/Faker/Provider/da_DK/Address.php b/src/Faker/Provider/da_DK/Address.php
new file mode 100644
index 00000000..fece8c40
--- /dev/null
+++ b/src/Faker/Provider/da_DK/Address.php
@@ -0,0 +1,282 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Address extends \Faker\Provider\Address
+{
+    /**
+     * @var array Danish city suffixes.
+     */
+    protected static $citySuffix = array(
+        'sted', 'bjerg', 'borg', 'rød', 'lund', 'by',
+    );
+
+    /**
+     * @var array Danish street suffixes.
+     */
+    protected static $streetSuffix = array(
+        'vej', 'gade', 'skov', 'shaven',
+    );
+
+    /**
+     * @var array Danish street word suffixes.
+     */
+    protected static $streetSuffixWord = array(
+        'Vej', 'Gade', 'Allé', 'Boulevard', 'Plads', 'Have',
+    );
+
+    /**
+     * @var array Danish building numbers.
+     */
+    protected static $buildingNumber = array(
+        '%##', '%#', '%#', '%', '%', '%', '%?', '% ?',
+    );
+
+    /**
+     * @var array Danish building level.
+     */
+    protected static $buildingLevel = array(
+        'st.', '%.', '%. sal.',
+    );
+
+    /**
+     * @var array Danish building sides.
+     */
+    protected static $buildingSide = array(
+        'tv.', 'th.',
+    );
+
+    /**
+     * @var array Danish zip code.
+     */
+    protected static $postcode = array(
+        '%###'
+    );
+
+    /**
+     * @var array Danish cities.
+     */
+    protected static $cityNames = array(
+        'Aabenraa','Aabybro','Aakirkeby','Aalborg','Aalestrup','Aars','Aarup','Agedrup','Agerbæk','Agerskov',
+        'Albertslund','Allerød','Allinge','Allingåbro','Almind','Anholt','Ansager','Arden','Asaa','Askeby',
+        'Asnæs','Asperup','Assens','Augustenborg','Aulum','Auning','Bagenkop','Bagsværd','Balle','Ballerup',
+        'Bandholm','Barrit','Beder','Bedsted','Bevtoft','Billum','Billund','Bindslev','Birkerød','Bjerringbro',
+        'Bjert','Bjæverskov','Blokhus','Blommenslyst','Blåvand','Boeslunde','Bogense','Bogø','Bolderslev','Bording',
+        'Borre','Borup','Brøndby','Brabrand','Bramming','Brande','Branderup','Bredebro','Bredsten','Brenderup',
+        'Broager','Broby','Brovst','Bryrup','Brædstrup','Strand','Brønderslev','Brønshøj','Brørup','Bække',
+        'Bækmarksbro','Bælum','Børkop','Bøvlingbjerg','Charlottenlund','Christiansfeld','Dalby','Dalmose',
+        'Dannemare','Daugård','Dianalund','Dragør','Dronninglund','Dronningmølle','Dybvad','Dyssegård','Ebberup',
+        'Ebeltoft','Egernsund','Egtved','Egå','Ejby','Ejstrupholm','Engesvang','Errindlev','Erslev','Esbjerg',
+        'Eskebjerg','Eskilstrup','Espergærde','Faaborg','Fanø','Farsø','Farum','Faxe','Ladeplads','Fejø',
+        'Ferritslev','Fjenneslev','Fjerritslev','Flemming','Fredensborg','Fredericia','Frederiksberg',
+        'Frederikshavn','Frederikssund','Frederiksværk','Frørup','Frøstrup','Fuglebjerg','Føllenslev','Føvling',
+        'Fårevejle','Fårup','Fårvang','Gadbjerg','Gadstrup','Galten','Gandrup','Gedser','Gedsted','Gedved','Gelsted',
+        'Gentofte','Gesten','Gilleleje','Gislev','Gislinge','Gistrup','Give','Gjerlev','Gjern','Glamsbjerg',
+        'Glejbjerg','Glesborg','Glostrup','Glumsø','Gram','Gredstedbro','Grenaa','Greve','Grevinge','Grindsted',
+        'Græsted','Gråsten','Gudbjerg','Sydfyn','Gudhjem','Gudme','Guldborg','Gørding','Gørlev','Gørløse',
+        'Haderslev','Haderup','Hadsten','Hadsund','Hals','Hammel','Hampen','Hanstholm','Harboøre','Harlev','Harndrup',
+        'Harpelunde','Hasle','Haslev','Hasselager','Havdrup','Havndal','Hedehusene','Hedensted','Hejls','Hejnsvig',
+        'Hellebæk','Hellerup','Helsinge','Helsingør','Hemmet','Henne','Herfølge','Herlev','Herlufmagle','Herning',
+        'Hesselager','Hillerød','Hinnerup','Hirtshals','Hjallerup','Hjerm','Hjortshøj','Hjørring','Hobro','Holbæk',
+        'Holeby','Holmegaard','Holstebro','Holsted','Holte','Horbelev','Hornbæk','Hornslet','Hornsyld','Horsens',
+        'Horslunde','Hovborg','Hovedgård','Humble','Humlebæk','Hundested','Hundslund','Hurup','Hvalsø','Hvide',
+        'Sande','Hvidovre','Højbjerg','Højby','Højer','Højslev','Høng','Hørning','Hørsholm','Hørve','Hårlev',
+        'Idestrup','Ikast','Ishøj','Janderup','Vestj','Jelling','Jerslev','Sjælland','Jerup','Jordrup','Juelsminde',
+        'Jyderup','Jyllinge','Jystrup','Midtsj','Jægerspris','Kalundborg','Kalvehave','Karby','Karise','Karlslunde',
+        'Karrebæksminde','Karup','Kastrup','Kerteminde','Kettinge','Kibæk','Kirke','Hyllinge','Såby','Kjellerup',
+        'Klampenborg','Klarup','Klemensker','Klippinge','Klovborg','Knebel','Kokkedal','Kolding','Kolind','Kongens',
+        'Lyngby','Kongerslev','Korsør','Kruså','Kvistgård','Kværndrup','København','Køge','Langebæk','Langeskov',
+        'Langå','Lejre','Lemming','Lemvig','Lille','Skensved','Lintrup','Liseleje','Lundby','Lunderskov','Lynge',
+        'Lystrup','Læsø','Løgstrup','Løgstør','Løgumkloster','Løkken','Løsning','Låsby','Malling','Mariager',
+        'Maribo','Marslev','Marstal','Martofte','Melby','Mern','Mesinge','Middelfart','Millinge','Morud','Munke',
+        'Bjergby','Munkebo','Møldrup','Mørke','Mørkøv','Måløv','Mårslet','Nakskov','Nexø','Nibe','Nimtofte',
+        'Nordborg','Nyborg','Nykøbing','Nyrup','Nysted','Nærum','Næstved','Nørager','Nørre','Aaby','Alslev',
+        'Asmindrup','Nebel','Snede','Nørreballe','Nørresundby','Odder','Odense','Oksbøl','Otterup','Oure','Outrup',
+        'Padborg','Pandrup','Præstø','Randbøl','Randers','Ranum','Rask','Mølle','Redsted','Regstrup','Ribe','Ringe',
+        'Ringkøbing','Ringsted','Risskov','Roskilde','Roslev','Rude','Rudkøbing','Ruds','Vedby','Rungsted','Kyst',
+        'Rynkeby','Ryomgård','Ryslinge','Rødby','Rødding','Rødekro','Rødkærsbro','Rødovre','Rødvig','Stevns',
+        'Rønde','Rønne','Rønnede','Rørvig','Sabro','Sakskøbing','Saltum','Samsø','Sandved','Sejerø','Silkeborg',
+        'Sindal','Sjællands','Odde','Sjølund','Skagen','Skals','Skamby','Skanderborg','Skibby','Skive','Skjern',
+        'Skodsborg','Skovlunde','Skælskør','Skærbæk','Skævinge','Skødstrup','Skørping','Skårup','Slagelse',
+        'Slangerup','Smørum','Snedsted','Snekkersten','Snertinge','Solbjerg','Solrød','Sommersted','Sorring','Sorø',
+        'Spentrup','Spjald','Sporup','Spøttrup','Stakroge','Stege','Stenderup','Stenlille','Stenløse','Stenstrup',
+        'Stensved','Stoholm','Jyll','Stokkemarke','Store','Fuglede','Heddinge','Merløse','Storvorde','Stouby',
+        'Strandby','Struer','Strøby','Stubbekøbing','Støvring','Suldrup','Sulsted','Sunds','Svaneke','Svebølle',
+        'Svendborg','Svenstrup','Svinninge','Sydals','Sæby','Søborg','Søby','Ærø','Søllested','Sønder','Felding',
+        'Sønderborg','Søndersø','Sørvad','Taastrup','Tappernøje','Tarm','Terndrup','Them','Thisted','Thorsø',
+        'Thyborøn','Thyholm','Tikøb','Tilst','Tinglev','Tistrup','Tisvildeleje','Tjele','Tjæreborg','Toftlund',
+        'Tommerup','Toreby','Torrig','Tranbjerg','Tranekær','Trige','Trustrup','Tune','Tureby','Tylstrup','Tølløse',
+        'Tønder','Tørring','Tårs','Ugerløse','Uldum','Ulfborg','Ullerslev','Ulstrup','Vadum','Valby','Vallensbæk',
+        'Vamdrup','Vandel','Vanløse','Varde','Vedbæk','Veflinge','Vejby','Vejen','Vejers','Vejle','Vejstrup',
+        'Veksø','Vemb','Vemmelev','Vesløs','Vestbjerg','Vester','Skerninge','Vesterborg','Vestervig','Viborg','Viby',
+        'Videbæk','Vildbjerg','Vils','Vinderup','Vipperød','Virum','Vissenbjerg','Viuf','Vodskov','Vojens','Vonge',
+        'Vorbasse','Vordingborg','Væggerløse','Værløse','Ærøskøbing','Ølgod','Ølsted','Ølstykke','Ørbæk',
+        'Ørnhøj','Ørsted','Djurs','Østbirk','Øster','Assels','Ulslev','Østermarie','Østervrå','Åbyhøj',
+        'Ålbæk','Ålsgårde','Århus','Årre','Årslev','Haarby','Nivå','Rømø','Omme','Vrå','Ørum',
+    );
+
+    /**
+     * @var array Danish municipalities.
+     */
+    protected static $municipalityNames = array(
+        'København','Frederiksberg','Ballerup','Brøndby','Dragør','Gentofte','Gladsaxe','Glostrup','Herlev',
+        'Albertslund','Hvidovre','Høje Taastrup','Lyngby-Taarbæk','Rødovre','Ishøj','Tårnby','Vallensbæk',
+        'Allerød','Fredensborg','Helsingør','Hillerød','Hørsholm','Rudersdal','Egedal','Frederikssund','Greve',
+        'Halsnæs','Roskilde','Solrød','Gribskov','Odsherred','Holbæk','Faxe','Kalundborg','Ringsted','Slagelse',
+        'Stevns','Sorø','Lejre','Lolland','Næstved','Guldborgsund','Vordingborg','Bornholm','Middelfart',
+        'Christiansø','Assens','Faaborg-Midtfyn','Kerteminde','Nyborg','Odense','Svendborg','Nordfyns','Langeland',
+        'Ærø','Haderslev','Billund','Sønderborg','Tønder','Esbjerg','Fanø','Varde','Vejen','Aabenraa',
+        'Fredericia','Horsens','Kolding','Vejle','Herning','Holstebro','Lemvig','Struer','Syddjurs','Furesø',
+        'Norddjurs','Favrskov','Odder','Randers','Silkeborg','Samsø','Skanderborg','Aarhus','Ikast-Brande',
+        'Ringkøbing-Skjern','Hedensted','Morsø','Skive','Thisted','Viborg','Brønderslev','Frederikshavn',
+        'Vesthimmerlands','Læsø','Rebild','Mariagerfjord','Jammerbugt','Aalborg','Hjørring','Køge',
+    );
+
+    /**
+     * @var array Danish regions.
+     */
+    protected static $regionNames = array(
+        'Region Nordjylland','Region Midtjylland','Region Syddanmark','Region Hovedstaden','Region Sjælland',
+    );
+
+    /**
+     * @link https://github.com/umpirsky/country-list/blob/master/country/cldr/da_DK/country.php
+     *
+     * @var array Some countries in danish.
+     */
+    protected static $country = array(
+        'Andorra','Forenede Arabiske Emirater','Afghanistan','Antigua og Barbuda','Anguilla','Albanien','Armenien',
+        'Hollandske Antiller','Angola','Antarktis','Argentina','Amerikansk Samoa','Østrig','Australien','Aruba',
+        'Åland','Aserbajdsjan','Bosnien-Hercegovina','Barbados','Bangladesh','Belgien','Burkina Faso','Bulgarien',
+        'Bahrain','Burundi','Benin','Saint Barthélemy','Bermuda','Brunei Darussalam','Bolivia','Brasilien','Bahamas',
+        'Bhutan','Bouvetø','Botswana','Hviderusland','Belize','Canada','Cocosøerne','Congo-Kinshasa',
+        'Centralafrikanske Republik','Congo','Schweiz','Elfenbenskysten','Cook-øerne','Chile','Cameroun','Kina',
+        'Colombia','Costa Rica','Serbien og Montenegro','Cuba','Kap Verde','Juleøen','Cypern','Tjekkiet','Tyskland',
+        'Djibouti','Danmark','Dominica','Den Dominikanske Republik','Algeriet','Ecuador','Estland','Egypten',
+        'Vestsahara','Eritrea','Spanien','Etiopien','Finland','Fiji-øerne','Falklandsøerne',
+        'Mikronesiens Forenede Stater','Færøerne','Frankrig','Gabon','Storbritannien','Grenada','Georgien',
+        'Fransk Guyana','Guernsey','Ghana','Gibraltar','Grønland','Gambia','Guinea','Guadeloupe','Ækvatorialguinea',
+        'Grækenland','South Georgia og De Sydlige Sandwichøer','Guatemala','Guam','Guinea-Bissau','Guyana',
+        'SAR Hongkong','Heard- og McDonald-øerne','Honduras','Kroatien','Haiti','Ungarn','Indonesien','Irland',
+        'Israel','Isle of Man','Indien','Det Britiske Territorium i Det Indiske Ocean','Irak','Iran','Island',
+        'Italien','Jersey','Jamaica','Jordan','Japan','Kenya','Kirgisistan','Cambodja','Kiribati','Comorerne',
+        'Saint Kitts og Nevis','Nordkorea','Sydkorea','Kuwait','Caymanøerne','Kasakhstan','Laos','Libanon',
+        'Saint Lucia','Liechtenstein','Sri Lanka','Liberia','Lesotho','Litauen','Luxembourg','Letland','Libyen',
+        'Marokko','Monaco','Republikken Moldova','Montenegro','Saint Martin','Madagaskar','Marshalløerne',
+        'Republikken Makedonien','Mali','Myanmar','Mongoliet','SAR Macao','Nordmarianerne','Martinique',
+        'Mauretanien','Montserrat','Malta','Mauritius','Maldiverne','Malawi','Mexico','Malaysia','Mozambique',
+        'Namibia','Ny Caledonien','Niger','Norfolk Island','Nigeria','Nicaragua','Holland','Norge','Nepal','Nauru',
+        'Niue','New Zealand','Oman','Panama','Peru','Fransk Polynesien','Papua Ny Guinea','Filippinerne','Pakistan',
+        'Polen','Saint Pierre og Miquelon','Pitcairn','Puerto Rico','De palæstinensiske områder','Portugal','Palau',
+        'Paraguay','Qatar','Reunion','Rumænien','Serbien','Rusland','Rwanda','Saudi-Arabien','Salomonøerne',
+        'Seychellerne','Sudan','Sverige','Singapore','St. Helena','Slovenien','Svalbard og Jan Mayen','Slovakiet',
+        'Sierra Leone','San Marino','Senegal','Somalia','Surinam','Sao Tome og Principe','El Salvador','Syrien',
+        'Swaziland','Turks- og Caicosøerne','Tchad','Franske Besiddelser i Det Sydlige Indiske Ocean','Togo',
+        'Thailand','Tadsjikistan','Tokelau','Timor-Leste','Turkmenistan','Tunesien','Tonga','Tyrkiet',
+        'Trinidad og Tobago','Tuvalu','Taiwan','Tanzania','Ukraine','Uganda','De Mindre Amerikanske Oversøiske Øer',
+        'USA','Uruguay','Usbekistan','Vatikanstaten','St. Vincent og Grenadinerne','Venezuela',
+        'De britiske jomfruøer','De amerikanske jomfruøer','Vietnam','Vanuatu','Wallis og Futunaøerne','Samoa',
+        'Yemen','Mayotte','Sydafrika','Zambia','Zimbabwe',
+    );
+
+    /**
+     * @var array Danish city format.
+     */
+    protected static $cityFormats = array(
+        '{{cityName}}',
+    );
+
+    /**
+     * @var array Danish street's name formats.
+     */
+    protected static $streetNameFormats = array(
+        '{{lastName}}{{streetSuffix}}',
+        '{{middleName}}{{streetSuffix}}',
+        '{{lastName}} {{streetSuffixWord}}',
+        '{{middleName}} {{streetSuffixWord}}',
+    );
+
+    /**
+     * @var array Danish street's address formats.
+     */
+    protected static $streetAddressFormats = array(
+        '{{streetName}} {{buildingNumber}}',
+        '{{streetName}} {{buildingNumber}}, {{buildingLevel}}',
+        '{{streetName}} {{buildingNumber}}, {{buildingLevel}} {{buildingSide}}',
+    );
+
+    /**
+     * @var array Danish address format.
+     */
+    protected static $addressFormats = array(
+        "{{streetAddress}}\n{{postcode}} {{city}}",
+    );
+
+    /**
+     * Randomly return a real city name.
+     *
+     * @return string
+     */
+    public static function cityName()
+    {
+        return static::randomElement(static::$cityNames);
+    }
+
+    /**
+     * Randomly return a suffix word.
+     *
+     * @return string
+     */
+    public static function streetSuffixWord()
+    {
+        return static::randomElement(static::$streetSuffixWord);
+    }
+
+    public static function buildingNumber()
+    {
+        return strtoupper(static::bothify(static::randomElement(static::$buildingNumber)));
+    }
+
+    /**
+     * Randomly return a building level.
+     *
+     * @return string
+     */
+    public static function buildingLevel()
+    {
+        return static::numerify(static::randomElement(static::$buildingLevel));
+    }
+
+    /**
+     * Randomly return a side of the building.
+     *
+     * @return string
+     */
+    public static function buildingSide()
+    {
+        return static::randomElement(static::$buildingSide);
+    }
+
+    /**
+     * Randomly return a real municipality name, called 'kommune' in danish.
+     *
+     * @return string
+     */
+    public static function municipality()
+    {
+        return static::randomElement(static::$municipalityNames);
+    }
+
+    /**
+     * Randomly return a real region name.
+     *
+     * @return string
+     */
+    public static function region()
+    {
+        return static::randomElement(static::$regionNames);
+    }
+}
diff --git a/src/Faker/Provider/da_DK/Company.php b/src/Faker/Provider/da_DK/Company.php
new file mode 100644
index 00000000..2f90cd76
--- /dev/null
+++ b/src/Faker/Provider/da_DK/Company.php
@@ -0,0 +1,51 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Company extends \Faker\Provider\Company
+{
+    /**
+     * @var array Danish company name formats.
+     */
+    protected static $formats = array(
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{companySuffix}}',
+        '{{lastName}} {{companySuffix}}',
+        '{{firstname}} {{lastName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{middleName}} {{companySuffix}}',
+        '{{firstname}} {{middleName}} {{companySuffix}}',
+        '{{lastName}} & {{lastName}} {{companySuffix}}',
+        '{{lastName}} og {{lastName}} {{companySuffix}}',
+        '{{lastName}} & {{lastName}} {{companySuffix}}',
+        '{{lastName}} og {{lastName}} {{companySuffix}}',
+        '{{middleName}} & {{middleName}} {{companySuffix}}',
+        '{{middleName}} og {{middleName}} {{companySuffix}}',
+        '{{middleName}} & {{lastName}}',
+        '{{middleName}} og {{lastName}}',
+    );
+
+    /**
+     * @var array Company suffixes.
+     */
+    protected static $companySuffix = array('ApS', 'A/S', 'I/S', 'K/S');
+
+    /**
+     * @var string CVR format.
+     */
+    protected static $cvrFormat = "%#######";
+
+    /**
+     * Generates a cvr number (8 digits).
+     *
+     * @return string
+     */
+    public static function cvr()
+    {
+        return static::numerify(static::$cvrFormat);
+    }
+}
diff --git a/src/Faker/Provider/da_DK/Internet.php b/src/Faker/Provider/da_DK/Internet.php
new file mode 100644
index 00000000..4052a758
--- /dev/null
+++ b/src/Faker/Provider/da_DK/Internet.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Internet extends \Faker\Provider\Internet
+{
+    /**
+     * @var array Some safe email TLD.
+     */
+    protected static $safeEmailTld = array(
+        'org', 'com', 'net', 'dk', 'dk', 'dk',
+    );
+
+    /**
+     * @var array Some email domains in Denmark.
+     */
+    protected static $freeEmailDomain = array(
+        'gmail.com', 'yahoo.com', 'yahoo.dk', 'hotmail.com', 'hotmail.dk', 'mail.dk', 'live.dk'
+    );
+
+    /**
+     * @var array Some TLD.
+     */
+    protected static $tld = array(
+        'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'dk', 'dk', 'dk',
+    );
+
+    /**
+     * Converts Danish characters to their ASCII representation
+     *
+     * @return string
+     */
+    private static function toAscii($string)
+    {
+        $from = array('æ', 'ø', 'å', 'Æ', 'Ø', 'Å');
+        $to   = array('ae', 'oe', 'aa', 'AE', 'OE', 'AA');
+
+        return str_replace($from, $to, $string);
+    }
+
+    /**
+     * @example 'jeppe'
+     * @return string
+     */
+    public function userName()
+    {
+        $format = static::randomElement(static::$userNameFormats);
+        return strtolower(static::toAscii(static::bothify($this->generator->parse($format))));
+    }
+
+    /**
+     * @example 'jensen.dk'
+     * @return string
+     */
+    public function domainWord()
+    {
+        $company = $this->generator->format('company');
+        $companyElements = explode(' ', $company);
+        $company = $companyElements[0];
+        $company = preg_replace('/\W/', '', $company);
+
+        return strtolower(static::toAscii($company));
+    }
+}
diff --git a/src/Faker/Provider/da_DK/Person.php b/src/Faker/Provider/da_DK/Person.php
new file mode 100644
index 00000000..bd564965
--- /dev/null
+++ b/src/Faker/Provider/da_DK/Person.php
@@ -0,0 +1,168 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @link http://www.danskernesnavne.navneforskning.ku.dk/Personnavne.asp
+ *
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class Person extends \Faker\Provider\Person
+{
+    /**
+     * @var array Danish person name formats.
+     */
+    protected static $formats = array(
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}}-{{middleName}} {{lastName}}',
+        '{{firstName}} {{middleName}} {{middleName}}-{{lastName}}',
+    );
+
+    /**
+     * @var array Danish first names.
+     */
+    protected static $firstName = array(
+        'Marie','Peter','Christian','Erik','Anna','Jens','Hans','Margrethe','Niels','Jørgen','Karen','Kirstine',
+        'Kristian','Kirsten','Johanne','Henrik','Poul','Elisabeth','Svend','Søren','Aage','Michael','Lars','Else',
+        'Ole','Anne','Martin','Inger','Anders','Mette','Thomas','Louise','Johannes','Maria','Ellen','Knud','Kristine',
+        'Hanne','Sofie','Jan','Emil','John','Inge','Bent','Karl','Carl','Henning','Per','Susanne','Frederik','Rasmus',
+        'Morten','Helle','Andreas','Jesper','Grethe','Arne','Marianne','Kim','Lene','Gerda','Børge','Peder','Birthe',
+        'Charlotte','Bente','Birgit','Tove','Flemming','Edith','Ruth','Kaj','Mads','Kathrine','Pia','Lone','Christine',
+        'Camilla','Emilie','Leif','Jytte','Jette','Torben','Kurt','Birgitte','Mogens','Helene','Bodil','Julie','Steen',
+        'Jacob','Henry','Lis','Ove','Katrine','Lise','Ulla','Bjarne','Finn','Claus','Gitte','Ingeborg','Eva','Tina',
+        'Preben','Bo','Gudrun','Irene','Otto','Mikkel','Cecilie','Allan','Carsten','Ane','Christina','Vibeke','Ingrid',
+        'Jakob','Marius','Johan','Brian','Annette','Ida','Egon','Rikke','Holger','Emma','Alfred','Laura','Mathias',
+        'Viggo','Daniel','Jonas','Simon','Karin','Valdemar','Agnes','Aksel','Erna','Gunnar','Mary','Pernille',
+        'Mathilde','Anette','Aase','Kasper','Lykke','Dorthe','Lisbeth','Astrid','Helga','Verner','Esther','Vilhelm',
+        'Frank','Heidi','Signe','Georg','Line','Inga','Amalie','Jensine','Henriette','Dorthea','Helge','Kenneth',
+        'Erling','Villy','Elise','Merete','Alice','Magnus','Jørn','Lasse','Ib','Ella','Anton','Axel','Sonja','Laurits',
+        'Rigmor','Hansine','Karoline','Robert','Maren','Lilly','Margit','Alexander','Elly','Jenny','Tage','Harry',
+        'Vagn','Martha','Harald','Dorte','Valborg','Olga','Ejner','Caroline','Karina','Frederikke','Trine','Kjeld',
+        'Anni','Rita','Ernst','Benny','Jane','Ejnar','Malene','Maja','Dennis','Elna','Sara','Nanna','Agnete','Andrea',
+        'Linda','Marinus','Tommy','Bjørn','René','Stine','Dagmar','Nikolaj','Anker','Dagny','Karsten','Tobias','Nina',
+        'Asta','Nielsine','Palle','Sigrid','Mona','Gert','Johnny','Cathrine','Anja','Solveig','Klaus','Casper',
+        'Nicolai','Oliver','Sebastian','Jonna','Lillian','Frede','Rene','Leo','Anita','Jeppe','Thorvald','Grete',
+        'Albert','Ebba','Julius','Lotte','Ester','Gustav','Richard','Mia','William','Rosa','Viola','David','Dan',
+        'Jeanette','Henny','Benjamin','Mikael','Annelise','Britta','Petra','August','Sarah','Gurli','Birte','Steffen',
+        'Stig','Vera','Ann','Edvard','Oluf','Ulrik','Patrick','Sophie','Vilhelmine','Tom','Tine','Agnethe','Laila',
+        'Joan','Connie','Michelle','Ketty','Karla','Augusta','Kai','Orla','Alma','Petrea','Evald','Victor','Ali',
+        'Betty','Oda','Kristina','Ejvind','Alex','Edel','Ragnhild','Ivan','Ditte','Bettina','Willy','Paul','Rune',
+        'Mark','Magdalene','Annie','Clara','Lisa','Eleonora','Keld','Kristen','Theodor','Doris','Lilian','Ludvig',
+        'Simone','Mie','Lena','Asger','Elin','Christoffer','Olivia','Christen','Magda','Oskar','Berit','Carla',
+        'Thorkild','Charles','Heinrich','Max','Thora','Eigil','Josefine','Frida','Yvonne','Tanja','Stefan','Vivi',
+        'Mariane','Herman','Kamilla','Emmy','Betina','Gunhild','Elsebeth','Bernhard','Sigurd','Sanne','Margrete',
+        'Anny','Nicklas','Birger','Elvira','Randi','Viktor','Frode','Louis','Emanuel','Lydia','Klara','Minna','Bruno',
+        'Philip','Ingemann','Marcus','Susan','Amanda','Carlo','Martine','Rasmine','Lea','Olaf','Janne','Tonny','Conny',
+        'Oline','Lærke','Troels','Gunner','Hedvig','Sven','Carina','Jannie','Kristoffer','Sørine','Lilli','Freja',
+        'Kristiane','Nicoline','Bertha','Meta','Christiane','Kent','Arnold','Victoria','Kamma','Gertrud','Sofus',
+        'Mohammad','Elisa','Harriet','Nicolaj','Ingelise','Adolf','Britt','Kate','Nikoline','Lissi','Petrine','Sandra',
+        'Ebbe','Herdis','Helena','Herluf','Hugo','Freddy','Irma','Rudolf','Liselotte','Arthur','Isabella','Jørgine',
+        'Mike','Eli','Oscar','Janni','Katja','Iben','Diana','Josephine','Helen','Werner','Lucas','Juliane','Uffe',
+        'Hilda','Jes','Ahmad','Winnie','Jimmy','Frits','Lynge','Jonathan','Marlene','Sten','Laurids','Mohamed','Helmer',
+        'Esben','Anne-Marie','Villiam','Einar','Vita','Poula','Adam','Thor','Ninna','Hartvig','Wilhelm','Asbjørn',
+        'Therese','Thi','Nadia','Helmuth','Majbritt','Sigfred','Jon','Eline','Krista','Sune','Anine','Maiken','Thea',
+        'Juel','Bendt','Hermann','Anne-Mette','Kaja','Iris','Richardt','Thyra','Elias','Metha','Gerhard','Povl',
+        'Bjarke','Joachim','Martinus','Lukas','Ingvard','Tim','Solvejg','Pouline','Hjalmar','Walther','Hassan','Ina',
+        'Sofia','Erland','Laurine','Lauritz','Ejgil','Unavngivet','Ellinor','Ejler','Liv','Kevin','Christa','Marc',
+        'Annalise','Elsa','Lizzie','Ahmed','Nils','Ferdinand','Ilse','Hanna','Markus','Niklas','Edmund','Alfrida',
+        'Folmer','Rebecca','Jul','Christopher','Lisbet','Mille','Theodora','Nancy','Benedikte','Osvald','Fritz','Vang',
+        'Alberte','Kresten','Nick','Vivian','Annika','Yrsa','Rose','Åge','Hardy','Ibrahim','Alexandra','Sabrina',
+        'Mohamad','Sine','Inge-Lise','Anne-Lise','Paula','Bolette','Sidsel','Viktoria','Jack','Alvilda','Maj-Britt',
+        'Ingolf','Ragna','Malthe','Lennart','Chris','Olav','Severin','Alf','Lissy','Maj','Jimmi','Monica','Selma',
+        'Johanna','Vagner','Elinor','Merethe','Rebekka','Josef','Pauline','Bitten','Agathe','Heine','Conni','Karlo',
+        'Rolf','Stephanie','Matilde','Chr','Jeanne','Evelyn','Dora','Mai','Leon',
+    );
+
+    /**
+     * @var array Danish middle names.
+     */
+    protected static $middleName = array(
+        'Møller','Lund','Holm','Jensen','Juul','Nielsen','Kjær','Hansen','Skov','Østergaard','Vestergaard',
+        'Nørgaard','Dahl','Bach','Friis','Søndergaard','Andersen','Bech','Pedersen','Bruun','Nygaard','Winther',
+        'Bang','Krogh','Schmidt','Christensen','Hedegaard','Toft','Damgaard','Holst','Sørensen','Juhl','Munk',
+        'Skovgaard','Søgaard','Aagaard','Berg','Dam','Petersen','Lind','Overgaard','Brandt','Larsen','Bak','Schou',
+        'Vinther','Bjerregaard', 'Riis','Bundgaard','Kruse','Mølgaard','Hjorth','Ravn','Madsen','Rasmussen',
+        'Jørgensen','Kristensen','Bonde','Bay','Hougaard','Dalsgaard','Kjærgaard','Haugaard','Munch','Bjerre','Due',
+        'Sloth','Leth','Kofoed','Thomsen','Kragh','Højgaard','Dalgaard','Hjort','Kirkegaard','Bøgh','Beck','Nissen',
+        'Rask','Høj','Brix','Storm','Buch','Bisgaard','Birch','Gade','Kjærsgaard','Hald','Lindberg','Høgh','Falk',
+        'Koch','Thorup','Borup','Knudsen','Vedel','Poulsen','Bøgelund','Juel','Frost','Hvid','Bjerg','Bæk','Elkjær',
+        'Hartmann','Kirk','Sand','Sommer','Skou','Nedergaard','Meldgaard','Brink','Lindegaard','Fischer','Rye',
+        'Hoffmann','Daugaard','Gram','Johansen','Meyer','Schultz','Fogh','Bloch','Lundgaard','Brøndum','Jessen',
+        'Busk','Holmgaard','Lindholm','Krog','Egelund','Engelbrecht','Buus','Korsgaard','Ellegaard','Tang','Steen',
+        'Kvist','Olsen','Nørregaard','Fuglsang','Wulff','Damsgaard','Hauge','Sonne','Skytte','Brun','Kronborg',
+        'Abildgaard','Fabricius','Bille','Skaarup','Rahbek','Borg','Torp','Klitgaard','Nørskov','Greve','Hviid',
+        'Mørch','Buhl','Rohde','Mørk','Vendelbo','Bjørn','Laursen','Egede','Rytter','Lehmann','Guldberg','Rosendahl',
+        'Krarup','Krogsgaard','Westergaard','Rosendal','Fisker','Højer','Rosenberg','Svane','Storgaard','Pihl',
+        'Mohamed','Bülow','Birk','Hammer','Bro','Kaas','Clausen','Nymann','Egholm','Ingemann','Haahr','Olesen',
+        'Nøhr','Brinch','Bjerring','Christiansen','Schrøder','Guldager','Skjødt','Højlund','Ørum','Weber',
+        'Bødker','Bruhn','Stampe','Astrup','Schack','Mikkelsen','Høyer','Husted','Skriver','Lindgaard','Yde',
+        'Sylvest','Lykkegaard','Ploug','Gammelgaard','Pilgaard','Brogaard','Degn','Kaae','Kofod','Grønbæk',
+        'Lundsgaard','Bagge','Lyng','Rømer','Kjeldgaard','Hovgaard','Groth','Hyldgaard','Ladefoged','Jacobsen',
+        'Linde','Lange','Stokholm','Bredahl','Hein','Mose','Bækgaard','Sandberg','Klarskov','Kamp','Green',
+        'Iversen','Riber','Smedegaard','Nyholm','Vad','Balle','Kjeldsen','Strøm','Borch','Lerche','Grønlund',
+        'Vestergård','Østergård','Nyborg','Qvist','Damkjær','Kold','Sønderskov','Bank',
+    );
+
+    /**
+     * @var array Danish last names.
+     */
+    protected static $lastName = array(
+        'Jensen','Nielsen','Hansen','Pedersen','Andersen','Christensen','Larsen','Sørensen','Rasmussen','Petersen',
+        'Jørgensen','Madsen','Kristensen','Olsen','Christiansen','Thomsen','Poulsen','Johansen','Knudsen','Mortensen',
+        'Møller','Jacobsen','Jakobsen','Olesen','Frederiksen','Mikkelsen','Henriksen','Laursen','Lund','Schmidt',
+        'Eriksen','Holm','Kristiansen','Clausen','Simonsen','Svendsen','Andreasen','Iversen','Jeppesen','Mogensen',
+        'Jespersen','Nissen','Lauridsen','Frandsen','Østergaard','Jepsen','Kjær','Carlsen','Vestergaard','Jessen',
+        'Nørgaard','Dahl','Christoffersen','Skov','Søndergaard','Bertelsen','Bruun','Lassen','Bach','Gregersen',
+        'Friis','Johnsen','Steffensen','Kjeldsen','Bech','Krogh','Lauritsen','Danielsen','Mathiesen','Andresen',
+        'Brandt','Winther','Toft','Ravn','Mathiasen','Dam','Holst','Nilsson','Lind','Berg','Schou','Overgaard',
+        'Kristoffersen','Schultz','Klausen','Karlsen','Paulsen','Hermansen','Thorsen','Koch','Thygesen','Bak','Kruse',
+        'Bang','Juhl','Davidsen','Berthelsen','Nygaard','Lorentzen','Villadsen','Lorenzen','Damgaard','Bjerregaard',
+        'Lange','Hedegaard','Bendtsen','Lauritzen','Svensson','Justesen','Juul','Hald','Beck','Kofoed','Søgaard',
+        'Meyer','Kjærgaard','Riis','Johannsen','Carstensen','Bonde','Ibsen','Fischer','Andersson','Bundgaard',
+        'Johannesen','Eskildsen','Hemmingsen','Andreassen','Thomassen','Schrøder','Persson','Hjorth','Enevoldsen',
+        'Nguyen','Henningsen','Jønsson','Olsson','Asmussen','Michelsen','Vinther','Markussen','Kragh','Thøgersen',
+        'Johansson','Dalsgaard','Gade','Bjerre','Ali','Laustsen','Buch','Ludvigsen','Hougaard','Kirkegaard','Marcussen',
+        'Mølgaard','Ipsen','Sommer','Ottosen','Müller','Krog','Hoffmann','Clemmensen','Nikolajsen','Brodersen',
+        'Therkildsen','Leth','Michaelsen','Graversen','Frost','Dalgaard','Albertsen','Laugesen','Due','Ebbesen',
+        'Munch','Svenningsen','Ottesen','Fisker','Albrechtsen','Axelsen','Erichsen','Sloth','Bentsen','Westergaard',
+        'Bisgaard','Nicolaisen','Magnussen','Thuesen','Povlsen','Thorup','Høj','Bentzen','Johannessen','Vilhelmsen',
+        'Isaksen','Bendixen','Ovesen','Villumsen','Lindberg','Thomasen','Kjærsgaard','Buhl','Kofod','Ahmed','Smith',
+        'Storm','Christophersen','Bruhn','Matthiesen','Wagner','Bjerg','Gram','Nedergaard','Dinesen','Mouritsen',
+        'Boesen','Borup','Abrahamsen','Wulff','Gravesen','Rask','Pallesen','Greve','Korsgaard','Haugaard','Josefsen',
+        'Bæk','Espersen','Thrane','Mørch','Frank','Lynge','Rohde','Larsson','Hammer','Torp','Sonne','Boysen','Bay',
+        'Pihl','Fabricius','Høyer','Birch','Skou','Kirk','Antonsen','Høgh','Damsgaard','Dall','Truelsen','Daugaard',
+        'Fuglsang','Martinsen','Therkelsen','Jansen','Karlsson','Caspersen','Steen','Callesen','Balle','Bloch','Smidt',
+        'Rahbek','Hjort','Bjørn','Skaarup','Sand','Storgaard','Willumsen','Busk','Hartmann','Ladefoged','Skovgaard',
+        'Philipsen','Damm','Haagensen','Hviid','Duus','Kvist','Adamsen','Mathiassen','Degn','Borg','Brix','Troelsen',
+        'Ditlevsen','Brøndum','Svane','Mohamed','Birk','Brink','Hassan','Vester','Elkjær','Lykke','Nørregaard',
+        'Meldgaard','Mørk','Hvid','Abildgaard','Nicolajsen','Bengtsson','Stokholm','Ahmad','Wind','Rømer','Gundersen',
+        'Carlsson','Grøn','Khan','Skytte','Bagger','Hendriksen','Rosenberg','Jonassen','Severinsen','Jürgensen',
+        'Boisen','Groth','Bager','Fogh','Hussain','Samuelsen','Pilgaard','Bødker','Dideriksen','Brogaard','Lundberg',
+        'Hansson','Schwartz','Tran','Skriver','Klitgaard','Hauge','Højgaard','Qvist','Voss','Strøm','Wolff','Krarup',
+        'Green','Odgaard','Tønnesen','Blom','Gammelgaard','Jæger','Kramer','Astrup','Würtz','Lehmann','Koefoed',
+        'Skøtt','Lundsgaard','Bøgh','Vang','Martinussen','Sandberg','Weber','Holmgaard','Bidstrup','Meier','Drejer',
+        'Schneider','Joensen','Dupont','Lorentsen','Bro','Bagge','Terkelsen','Kaspersen','Keller','Eliasen','Lyberth',
+        'Husted','Mouritzen','Krag','Kragelund','Nørskov','Vad','Jochumsen','Hein','Krogsgaard','Kaas','Tolstrup',
+        'Ernst','Hermann','Børgesen','Skjødt','Holt','Buus','Gotfredsen','Kjeldgaard','Broberg','Roed','Sivertsen',
+        'Bergmann','Bjerrum','Petersson','Smed','Jeremiassen','Nyborg','Borch','Foged','Terp','Mark','Busch',
+        'Lundgaard','Boye','Yde','Hinrichsen','Matzen','Esbensen','Hertz','Westh','Holmberg','Geertsen','Raun',
+        'Aagaard','Kock','Falk','Munk',
+    );
+
+    /**
+     * Randomly return a danish name.
+     *
+     * @return string
+     */
+    public static function middleName()
+    {
+        return static::randomElement(static::$middleName);
+    }
+}
diff --git a/src/Faker/Provider/da_DK/PhoneNumber.php b/src/Faker/Provider/da_DK/PhoneNumber.php
new file mode 100644
index 00000000..af96d3f4
--- /dev/null
+++ b/src/Faker/Provider/da_DK/PhoneNumber.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace Faker\Provider\da_DK;
+
+/**
+ * @author Antoine Corcy <contact@sbin.dk>
+ */
+class PhoneNumber extends \Faker\Provider\PhoneNumber
+{
+    /**
+     * @var array Danish phonenumber formats.
+     */
+    protected static $formats = array(
+        '+45 ## ## ## ##',
+        '+45 #### ####',
+        '+45########',
+        '## ## ## ##',
+        '#### ####',
+        '########',
+    );
+}