Rajout du dossier core + MAJ .gitignore

This commit is contained in:
2019-11-21 12:48:42 +01:00
parent f4aabcb9b1
commit 459f8966b0
10448 changed files with 1835600 additions and 1 deletions

View File

@@ -0,0 +1,2 @@
vendor
composer.lock

View File

@@ -0,0 +1,17 @@
language: php
php:
- 5.3
- 5.4
- 5.5
- 5.6
- 7.0
- hhvm
sudo: false
before_script:
- travis_retry composer self-update
- travis_retry composer install --no-interaction --prefer-source --dev
script: make sniff test

View File

@@ -0,0 +1,295 @@
CHANGELOG
=========
To be released, v1.5.0
----------------------
* Added ability to print custom text on the images fetched by the Image provider [\#583](https://github.com/fzaninotto/Faker/pull/583) ([fzaninotto](https://github.com/fzaninotto))
* Fixed typos in Preuvian (es\_PE) Person provider [\#581](https://github.com/fzaninotto/Faker/pull/581) [\#580](https://github.com/fzaninotto/Faker/pull/580) ([ysramirez](https://github.com/ysramirez))
* Added instructions for installing with composer to readme.md [\#572](https://github.com/fzaninotto/Faker/pull/572) ([totophe](https://github.com/totophe))
* Added Kazakh (kk\_KZ) locale [\#569](https://github.com/fzaninotto/Faker/pull/569) ([YerlenZhubangaliyev](https://github.com/YerlenZhubangaliyev))
* Added Korean (ko\_KR) locale [\#566](https://github.com/fzaninotto/Faker/pull/566) ([pearlc](https://github.com/pearlc))
* Fixed file provider to ignore unreadable and special files [\#565](https://github.com/fzaninotto/Faker/pull/565) ([svrnm](https://github.com/svrnm))
* Fixed Dutch (nl\_NL) Address and Person providers [\#560](https://github.com/fzaninotto/Faker/pull/560) ([killerog](https://github.com/killerog))
* Fixed Dutch (nl\_NL) Person provider [\#559](https://github.com/fzaninotto/Faker/pull/559) ([pauledenburg](https://github.com/pauledenburg))
* Added Russian (ru\_RU) Bank names provider [\#553](https://github.com/fzaninotto/Faker/pull/553) ([wizardjedi](https://github.com/wizardjedi))
* Added mobile phone function in French (fr\_FR) provider [\#552](https://github.com/fzaninotto/Faker/pull/552) ([kletellier](https://github.com/kletellier))
* Added phpdoc for new magic methods in Generator to help IntelliSense completion [\#550](https://github.com/fzaninotto/Faker/pull/550) ([stof](https://github.com/stof))
* Fixed File provider bug 'The first argument to copy() function cannot be a directory' [\#547](https://github.com/fzaninotto/Faker/pull/547) ([svrnm](https://github.com/svrnm))
* Added new Brazilian (pt\_BR) Providers [\#545](https://github.com/fzaninotto/Faker/pull/545) ([igorsantos07](https://github.com/igorsantos07))
* Fixed ability to seed the generator [\#543](https://github.com/fzaninotto/Faker/pull/543) ([schmengler](https://github.com/schmengler))
* Added streetAddress formatter to Russian (ru\_RU) provider [\#542](https://github.com/fzaninotto/Faker/pull/542) ([ZAYEC77](https://github.com/ZAYEC77))
* Fixed Internet provider warning "Could not create transliterator"* [\#541](https://github.com/fzaninotto/Faker/pull/541) ([fonsecas72](https://github.com/fonsecas72))
* Fixed Spanish for Argentina (es\_AR) Address provider [\#540](https://github.com/fzaninotto/Faker/pull/540) ([ivanmirson](https://github.com/ivanmirson))
* Fixed region names in French for Belgium (fr\_BE) address provider [\#536](https://github.com/fzaninotto/Faker/pull/536) ([miclf](https://github.com/miclf))
* Fixed broken Doctrine2 link in README [\#534](https://github.com/fzaninotto/Faker/pull/534) ([JonathanKryza](https://github.com/JonathanKryza))
* Added link to faker-context Behat extension in readme [\#532](https://github.com/fzaninotto/Faker/pull/532) ([denheck](https://github.com/denheck))
* Added PHP 7.0 nightly to Travis build targets [\#525](https://github.com/fzaninotto/Faker/pull/525) ([TomasVotruba](https://github.com/TomasVotruba))
* Added Dutch (nl\_NL) color names [\#523](https://github.com/fzaninotto/Faker/pull/523) ([belendel](https://github.com/belendel))
* Fixed Chinese (zh\_CN) Address provider (remove Taipei) [\#522](https://github.com/fzaninotto/Faker/pull/522) ([asika32764](https://github.com/asika32764))
* Fixed phonenumber formats in Dutch (nl\_NL) PhoneNumber provider [\#521](https://github.com/fzaninotto/Faker/pull/521) ([SpaceK33z](https://github.com/SpaceK33z))
* Fixed Russian (ru\_RU) Address provider [\#518](https://github.com/fzaninotto/Faker/pull/518) ([glagola](https://github.com/glagola))
* Added Italian (it\_IT) Text provider [\#517](https://github.com/fzaninotto/Faker/pull/517) ([endelwar](https://github.com/endelwar))
* Added Norwegian (no\_NO) locale [\#515](https://github.com/fzaninotto/Faker/pull/515) ([phaza](https://github.com/phaza))
* Added VAT number to Bulgarian (bg\_BG) Payment provider [\#512](https://github.com/fzaninotto/Faker/pull/512) ([ronanguilloux](https://github.com/ronanguilloux))
* Fixed UserAgent provider outdated user agents [\#511](https://github.com/fzaninotto/Faker/pull/511) ([ajbdev](https://github.com/ajbdev))
* Fixed `image()` formatter to make it work with temp dir of any (decent) OS [\#507](https://github.com/fzaninotto/Faker/pull/507) ([ronanguilloux](https://github.com/ronanguilloux))
* Added Persian (fa\_IR) locale [\#500](https://github.com/fzaninotto/Faker/pull/500) ([zoli](https://github.com/zoli))
* Added Currency Code formatter [\#497](https://github.com/fzaninotto/Faker/pull/497) ([stelgenhof](https://github.com/stelgenhof))
* Added VAT number to Belgium (be_BE) Payment provider [\#495](https://github.com/fzaninotto/Faker/pull/495) ([ronanguilloux](https://github.com/ronanguilloux))
* Fixed `imageUrl` formatter bug where it would always return the same image [\#494](https://github.com/fzaninotto/Faker/pull/494) ([fzaninotto](https://github.com/fzaninotto))
* Added more Indonesian (id\_ID) providers [\#493](https://github.com/fzaninotto/Faker/pull/493) ([deerawan](https://github.com/deerawan))
* Added Indonesian (id\_ID) locale [\#492](https://github.com/fzaninotto/Faker/pull/492) ([stoutZero](https://github.com/stoutZero))
* Fixed unique generator performance [\#491](https://github.com/fzaninotto/Faker/pull/491) ([ikwattro](https://github.com/ikwattro))
* Added transliterator to `email` and `username` [\#490](https://github.com/fzaninotto/Faker/pull/490) ([fzaninotto](https://github.com/fzaninotto))
* Added Hungarian (hu\_HU) Text provider [\#486](https://github.com/fzaninotto/Faker/pull/486) ([lintaba](https://github.com/lintaba))
* Fixed CakePHP Entity Popolator (some cases where no entities prev. inserted) [\#483](https://github.com/fzaninotto/Faker/pull/483) ([jadb](https://github.com/jadb))
* Added Color and DateTime Turkish (tr\_TR) Providers [\#481](https://github.com/fzaninotto/Faker/pull/481) ([behramcelen](https://github.com/behramcelen))
* Added Latvian (lv\_LV) `personalIdentityNumber` formatter [\#472](https://github.com/fzaninotto/Faker/pull/472) ([MatissJanis](https://github.com/MatissJanis))
* Added VAT number to Austrian (at_AT) Payment provider [\#470](https://github.com/fzaninotto/Faker/pull/470) ([ronanguilloux](https://github.com/ronanguilloux))
* Fixed missing @return phpDoc in Payment provider [\#469](https://github.com/fzaninotto/Faker/pull/469) ([ronanguilloux](https://github.com/ronanguilloux))
* Added SWIFT/BIC payment type formatter to the Payment provider [\#465](https://github.com/fzaninotto/Faker/pull/465) ([ronanguilloux](https://github.com/ronanguilloux))
* Fixed small typo in Base provider exception [\#460](https://github.com/fzaninotto/Faker/pull/460) ([miclf](https://github.com/miclf))
* Added Georgian (ka\_Ge) locale [\#457](https://github.com/fzaninotto/Faker/pull/457) ([lperto](https://github.com/lperto))
* Added PSR-4 Autoloading [\#455](https://github.com/fzaninotto/Faker/pull/455) ([GrahamCampbell](https://github.com/GrahamCampbell))
* Added Uganda (en_UG) locale [\#454](https://github.com/fzaninotto/Faker/pull/454) ([tharoldD](https://github.com/tharoldD))
* Added `regexify` formatter, generating a random string based on a regular expression [\#453](https://github.com/fzaninotto/Faker/pull/453) ([fzaninotto](https://github.com/fzaninotto))
* Added shuffle formatter, to shuffle an array or a string [\#452](https://github.com/fzaninotto/Faker/pull/452) ([fzaninotto](https://github.com/fzaninotto))
* Added ISBN-10 & ISBN-13 codes formatters to Barcode provider [\#451](https://github.com/fzaninotto/Faker/pull/451) ([gietos](https://github.com/gietos))
* Fixed Russian (ru\_RU) middle names (different for different genders) [\#450](https://github.com/fzaninotto/Faker/pull/450) ([gietos](https://github.com/gietos))
* Fixed Ukranian (uk\_UA) Person provider [\#448](https://github.com/fzaninotto/Faker/pull/448) ([aivus](https://github.com/aivus))
* Added Vietnamese (vi\_VN) locale [\#447](https://github.com/fzaninotto/Faker/pull/447) ([huy95](https://github.com/huy95))
* Added type hint to the Documentor constructor [\#446](https://github.com/fzaninotto/Faker/pull/446) ([JeroenDeDauw](https://github.com/JeroenDeDauw))
* Fixed Russian (ru\_RU) Person provider (joined names) [\#445](https://github.com/fzaninotto/Faker/pull/445) ([aivus](https://github.com/aivus))
* Added English (en\_GB) `mobileNumber` methods [\#438](https://github.com/fzaninotto/Faker/pull/438) ([daveblake](https://github.com/daveblake))
* Added Traditional Chinese (zh\_TW) Realtext provider [\#434](https://github.com/fzaninotto/Faker/pull/434) ([tzhuan](https://github.com/tzhuan))
* Fixed first name in Spanish for Argentina (es\_AR) Person provider [\#433](https://github.com/fzaninotto/Faker/pull/433) ([fzaninotto](https://github.com/fzaninotto))
* Fixed Canadian (en_CA) state abbreviation for Nunavut [\#430](https://github.com/fzaninotto/Faker/pull/430) ([julien-c](https://github.com/julien-c))
* Added CakePHP ORM entity populator [\#428](https://github.com/fzaninotto/Faker/pull/428) ([jadb](https://github.com/jadb))
* Added Traditional Chinese (zh\_TW) locale [\#427](https://github.com/fzaninotto/Faker/pull/427) ([tzhuan](https://github.com/tzhuan))
* Fixed typo in Doctrine Populator phpDoc [\#425](https://github.com/fzaninotto/Faker/pull/425) ([ihsanudin](https://github.com/ihsanudin))
* Added Chinese (zh_CN) Internet provider [\#424](https://github.com/fzaninotto/Faker/pull/424) ([Lisso-Me](https://github.com/Lisso-Me))
* Added Country ISO 3166-1 alpha-3 code to the Miscellaneous provider[\#422](https://github.com/fzaninotto/Faker/pull/422) ([gido](https://github.com/gido))
* Added English (en\_GB) Person provider [\#421](https://github.com/fzaninotto/Faker/pull/421) ([AlexCutts](https://github.com/AlexCutts))
* Added missing tests for the Color Provider [\#420](https://github.com/fzaninotto/Faker/pull/420) ([bessl](https://github.com/bessl))
* Added Nepali (ne\_NP) locale [\#419](https://github.com/fzaninotto/Faker/pull/419) ([ankitpokhrel](https://github.com/ankitpokhrel))
* Fixed latitude and longitude formatters bug (numeric value out of range for 32bits) [\#416](https://github.com/fzaninotto/Faker/pull/416) ([fzaninotto](https://github.com/fzaninotto))
* Added a dedicated calculator Luhn calculator service [\#414](https://github.com/fzaninotto/Faker/pull/414) ([fzaninotto](https://github.com/fzaninotto))
* Fixed Russian (ru_RU) Person provider (removed lowercase duplications) [\#413](https://github.com/fzaninotto/Faker/pull/413) ([Ragazzo](https://github.com/Ragazzo))
* Fixed barcode formatter (improved speed, added tests) [\#412](https://github.com/fzaninotto/Faker/pull/412) ([fzaninotto](https://github.com/fzaninotto))
* Added ipv4 and barcode formatters tests [\#410](https://github.com/fzaninotto/Faker/pull/410) ([bessl](https://github.com/bessl))
* Fixed typos in various comments blocks [\#409](https://github.com/fzaninotto/Faker/pull/409) ([bessl](https://github.com/bessl))
* Fixed InternetTest (replaced regex with PHP filter) [\#406](https://github.com/fzaninotto/Faker/pull/406) ([bessl](https://github.com/bessl))
* Added password formatter to the Internet provider[\#402](https://github.com/fzaninotto/Faker/pull/402) ([fzaninotto](https://github.com/fzaninotto))
* Added Company and Internet Austrian (de\_AT) Providers [\#400](https://github.com/fzaninotto/Faker/pull/400) ([bessl](https://github.com/bessl))
* Added third-party libraries section in README [\#399](https://github.com/fzaninotto/Faker/pull/399) ([fzaninotto](https://github.com/fzaninotto))
* Added Spanish for Venezuela (es\_VE) locale [\#398](https://github.com/fzaninotto/Faker/pull/398) ([DIOHz0r](https://github.com/DIOHz0r))
* Added PhoneNumber Autrian (de\_AT) Provider, and missing test for the 'locale' method. [\#395](https://github.com/fzaninotto/Faker/pull/395) ([bessl](https://github.com/bessl))
* Removed wrongly localized Lorem provider [\#394](https://github.com/fzaninotto/Faker/pull/394) ([fzaninotto](https://github.com/fzaninotto))
* Fixed Miscellaneous provider (made the `locale` formatter static) [\#390](https://github.com/fzaninotto/Faker/pull/390) ([bessl](https://github.com/bessl))
* Added a unit test file for the Miscellaneous Provider [\#389](https://github.com/fzaninotto/Faker/pull/389) ([bessl](https://github.com/bessl))
* Added warning in README about using `rand()`` and the seed functions [\#386](https://github.com/fzaninotto/Faker/pull/386) ([paulvalla](https://github.com/paulvalla))
* Fixed French (fr\_FR) Person provider (Uppercased a first name) [\#385](https://github.com/fzaninotto/Faker/pull/385) ([netcarver](https://github.com/netcarver))
* Added Russian (ru\_RU) and Ukrainian (uk\_UA) Text providers [\#383](https://github.com/fzaninotto/Faker/pull/383) ([terion-name](https://github.com/terion-name))
* Added more street prefixes to French (fr\_FR) Address provider [\#381](https://github.com/fzaninotto/Faker/pull/381) ([ronanguilloux](https://github.com/ronanguilloux))
* Added PHP 5.6 to CI targets [\#378](https://github.com/fzaninotto/Faker/pull/378) ([GrahamCampbell](https://github.com/GrahamCampbell))
* Fixed spaces remaining at the end of liine in various files [\#377](https://github.com/fzaninotto/Faker/pull/377) ([GrahamCampbell](https://github.com/GrahamCampbell))
* Fixed UserAgent provider (added space before processor on linux platform) [\#374](https://github.com/fzaninotto/Faker/pull/374) ([TomK](https://github.com/TomK))
* Added Company generator for Russian (ru\_RU) locale [\#371](https://github.com/fzaninotto/Faker/pull/371) ([kix](https://github.com/kix))
* Fixed Russian (ru\_RU) Color provider (uppercase letters) [\#370](https://github.com/fzaninotto/Faker/pull/370) ([semanser](https://github.com/semanser))
* Added more Polish (pl\_PL) phone numbers [\#369](https://github.com/fzaninotto/Faker/pull/369) ([piotrantosik](https://github.com/piotrantosik))
* Fixed Ruby Faker link in readme [\#368](https://github.com/fzaninotto/Faker/pull/368) ([philsturgeon](https://github.com/philsturgeon))
* Added more Japanese (ja\_JP) names in Person provider [\#366](https://github.com/fzaninotto/Faker/pull/366) ([kumamidori](https://github.com/kumamidori))
* Added Slovenian (sl\_SL) locale [\#363](https://github.com/fzaninotto/Faker/pull/363) ([alesf](https://github.com/alesf))
* Fixed German (de\_DE) Person provider (first names) [\#362](https://github.com/fzaninotto/Faker/pull/362) ([mikehaertl](https://github.com/mikehaertl))
* Fixed Ukrainian (uk\_UA) Person providr (there is no such letter "ы" in Ukrainian) [\#359](https://github.com/fzaninotto/Faker/pull/359) ([nazar-pc](https://github.com/nazar-pc))
* Fixed Chinese (zh\_CN) PhoneNumber provider (the length of mobile phone number is 11) [\#358](https://github.com/fzaninotto/Faker/pull/358) ([byan](https://github.com/byan))
* Added Arabic (ar_\JO) Locale [\#357](https://github.com/fzaninotto/Faker/pull/357) ([zrashwani](https://github.com/zrashwani))
* Fixed Czech (cs\_CZ) Person provider (missing lowercase in last name) [\#355](https://github.com/fzaninotto/Faker/pull/355) ([halaxa](https://github.com/halaxa))
* Fixed French for Belgium (fr\_BE) Address Provider (doubled city names) [\#354](https://github.com/fzaninotto/Faker/pull/354) ([miclf](https://github.com/miclf))
* Added Biased Integer Provider [\#332](https://github.com/fzaninotto/Faker/pull/332) ([TimWolla](https://github.com/TimWolla))
* Added Swedish (sv\_SE) locale [\#316](https://github.com/fzaninotto/Faker/pull/316) ([ulrikjohansson](https://github.com/ulrikjohansson))
* Added English for New Zealand (en\_NZ) locale [\#283](https://github.com/fzaninotto/Faker/pull/283) ([JasonMortonNZ](https://github.com/JasonMortonNZ))
* Added mention of external Provider for cron expressions to readme[\#498](https://github.com/fzaninotto/Faker/pull/498) ([swekaj](https://github.com/swekaj))
2014-06-04, v1.4.0
------------------
* Fixed typo in Slovak person names (cinan)
* Added tests for uk_UA providers (serge-kuharev)
* Fixed numerify() performance by making it 30% faster (fzaninotto)
* Added strict option to randomNumber to force number of digits (fzaninotto)
* Fixed randomNumber usage duplicating numberBetween (fzaninotto)
* Fixed address provider for latvian language (MatissJA)
* Added Czech Republic (cs_CZ) address, company, datetime and text providers (Mikulas)
* Fixed da_DK Person provider data containing an 'unnamed' person (tolnem)
* Added slug provider (fzaninotto)
* Fixed IDE insights for new local IP and MAC address providers (hugofonseca)
* Added firstname gender method to all Person providers (csanquer)
* Fixed tr_TR email service, city name, person, and phone number formats (ogunkarakus)
* Fixed US_en state list (fzaninotto)
* Fixed en_US address provider so state abbr are ISO 3166 codes (Garbee)
* Added local IP and MAC address providers (kielabokkie)
* Fixed typo in century list affecting the century provider (fzaninotto)
* Added default value to optional modifier (joshuajabbour)
* Fixed Portuguese phonenumbers have 9 digits (hugofonseca)
* Added fileCopy to File provider to simulate file upload (stefanosala)
* Added pt_PT providers (hugofonseca)
* Fixed dead code in text provider (hugofonseca)
* Fixed IDE insights for magic properties (hugofonseca)
* Added tin (NIF) generator for pt_PT provider (hugofonseca)
* Fixed numberBetween max default value handling (fzaninotto)
* Added pt_PT phone number provider (hugofonseca)
* Fixed PSR-2 standards and add make task to force it on Travis (terite)
* Added new ro_RO Personal Numerical Code (CNP) and phone number providers (avataru)
* Fixed Internet provider for sk_SK locale (cinan)
* Fixed typo in en_ZA Internet provider (bjorntheart)
* Fixed phpdoc for DateTime magic methods (stof)
* Added doc about seeding with maximum timestamp using dateTime formatters (fzaninotto)
* Added Maximum Timestamp option to get always same unix timestamp when using a fixed seed (csanquer)
* Added Montenegrian (me_ME) providers (ognjenm)
* Added ean barcode provider (nineinchnick)
* Added fullPath parameter to Image provider (stefanosala)
* Added more Polish company formats (nineinchnick)
* Added Polish realText provider (nineinchnick)
* Fixed remaining non-seedable random generators (terite)
* Added randomElements provider (terite)
* Added French realText provider (fzaninotto)
* Fixed realText provider bootstrap slowness (fzaninotto)
* Added realText provider for English and German, based on Markov Chains Generator (TimWolla)
* Fixed address format in nl_NL provider (doenietzomoeilijk)
* Fixed potentially offensive word from last name list (joshuajabbour)
* Fixed reamde documentation about the optional modifier (cryode)
* Fixed Image provider and documentor routine (fzaninotto)
* Fixed IDE insights for methods (PedroTroller)
* Fixed missing data in en_US Address provider (Garbee)
* Added Bengali (bn_BD) providers (masnun)
* Fixed warning on test file when short tags are on (bateller)
* Fixed Doctrine populator undefined index warning (dbojdo)
* Added French Canadian (fr_CA) Address and Person providers (marcaube)
* Fixed typo in NullGenerator (mhanson01)
* Fixed Doctrine populator issue with one-to-one nullable relationship (jpetitcolas)
* Added Canadian English (en_CA) address and phone number providers (cviebrock)
* Fixed duplicated Payment example in readme (Garbee)
* Fixed Polish (pl_PL) Person provider data (czogori)
* Added Hungarian (hu_HU) providers (sagikazarmark)
* Added 'kana' (ja_JP) name formatters (kzykhys)
* Added allow_failure for hhvm to travis-ci and test against php 5.5 (toin0u)
2013-12-16, v1.3.0
------------------
* Fixed state generator in Australian (en_AU) provider (sebklaus)
* Fixed IDE insights for locale specific providers (ulrikjohansson)
* Added English (South Africa) (en_ZA) person, address, Internet and phone number providers (dmfaux)
* Fixed integer values overflowing on signed INTEGER columns on Doctrine populator (Thinkscape)
* Fixed spelling error in French (fr_FR) address provider (leihog)
* Added improvements based on SensioLabsInsights analysis
* Fixed Italian (it_IT) email provider (garak)
* Added Spanish (es_ES) Internet provider (eusonlito)
* Added English Philippines (en_PH) address provider (kamote)
* Added Brazilian (pt_BR) email provider data (KennedyTedesco)
* Fixed UK country code (pgscandeias)
* Added Peruvian (es_PE) person, address, phone number, and company providers (cslucano)
* Added Ukrainian (uk_UA) color provider (ruden)
* Fixed Ukrainian (uk_UA) namespace and email translitteration (ruden)
* Added Romanian (Moldova) (ro_MD) person, address, and phone number providers (AlexanderC)
* Added IBAN generator for every currently known locale that uses it (nineinchnick)
* Added Image generation powered by LoremPixel (weotch)
* Fixed missing timezone with dateTimeBetween (baldurrensch)
* Fixed call to undefined method cardType in Payment (WMeldon)
* Added Romanian (ro_RO) address and person providers (calina-c)
* Fixed Doctrine populator to use ObjectManager instead of EntityManagerInterface (mgiustiniani)
* Fixed docblock for Provider\Base::unique() (pschultz)
* Added Payment providers (creditCardType, creditCardNumber, creditCardExpirationDate, creditCardExpirationDateString) (pomaxa)
* Added unique() modifier
* Added IDE insights to allow better intellisense/phpStorm autocompletion (thallisphp)
* Added Polish (pl_PL) address provider, personal identity number and pesel number generator (nineinchnick)
* Added Turkish (tr_TR) address provider, and improved internet provider (hasandz)
* Fixed Propel column number guesser to use signed range of values (gunnarlium)
* Added Greek (el_GR) person, address, and phone number providers (georgeharito)
* Added Austrian (en_AU) address, Internet, and phone number providers (rcuddy)
* Fixed phpDoc in Doctrine Entity populator (rogamoore)
* Added French (fr_FR) phone number formats (vchabot)
* Added optional() modifier (weotch)
* Fixed typo in the Person provider documentation (jtreminio)
* Fixed Russian (ru_RU) person format (alexshadow007)
* Added Japanese (ja_JP) person, address, Internet, phone number, and company providers (kumamidori)
* Added color providers, driver license and passport number formats for the ru_RU locale (pomaxa)
* Added Latvian (lv_LV) person, address, Internet, and phone number providers (pomaxa)
* Added Brazilian (pt_BR) Internet provider (vjnrv)
* Added more Czech (cs_CZ) lastnames (petrkle)
* Added Chinese Simplified (zh_CN) person, address, Internet, and phone number providers (tlikai)
* Fixed Typos (pborelli)
* Added Color provider with hexColor, rgbColor, rgbColorAsArray, rgbCssColor, safeColorName, and colorName formatters (lsv)
* Added support for associative arrays in `randomElement` (aRn0D)
2013-06-09, v1.2.0
------------------
* Added new provider for fr_BE locale (jflefebvre)
* Updated locale provider to use a static locale list (spawn-guy)
* Fixed invalid UTF-8 sequence in domain provider with the Bulgarian provider (Dynom)
* Fixed the nl_NL Person provider (Dynom)
* Removed all requires and added the autoload definition to composer (Dynom)
* Fixed encoding problems in nl_NL Address provider (Dynom)
* Added icelandic provider (is_IS) (birkir)
* Added en_CA address and phone numbers (cviebrock)
* Updated safeEmail provider to be really safe (TimWolla)
* Documented alternative randomNumber usage (Seldaek)
* Added basic file provider (anroots)
* Fixed use of fourth argument on Doctrine addEntity (ecentinela)
* Added nl_BE provider (wimvds)
* Added Random Float provider (csanquer)
* Fixed bug in Faker\ORM\Doctrine\Populator (mmf-amarcos)
* Updated ru_RU provider (rmrevin)
* Added safe email domain provider (csanquer)
* Fixed latitude provider (rumpl)
* Fixed unpredictability of fake data generated by Faker\Provider\Base::numberBetween() (goatherd)
* Added uuid provider (goatherd)
* Added possibility to call methods on Doctrine entities, possibility to generate unique id (nenadalm)
* Fixed prefixes typos in 'pl_PL' Person provider (krymen)
* Added more fake data to the Ukraininan providers (lysenkobv)
* Added more fake data to the Italian providers (EmanueleMinotto)
* Fixed spaces appearing in generated emails (alchy58)
* Added Armenian (hy_AM) provider (artash)
* Added Generation of valid SIREN & SIRET codes to French providers (alexsegura)
* Added Dutch (nl_NL) provider (WouterJ)
* Fixed missing typehint in Base::__construct() (benja-M-1)
* Fixed typo in README (benja-M-1)
* Added Ukrainian (ua_UA) provider (rsvasilyev)
* Added Turkish (tr_TR) Provider (faridmovsumov)
* Fixed executable bit in some PHP files (siwinski)
* Added Brazilian Portuguese (pt_BR) provider (oliveiraev)
* Added Spanish (es_ES) provider (ivannis)
* Fixed Doctrine populator to allow for the population of entity data that has associations to other entities (afishnamedsquish)
* Added Danish (da_DK) providers (toin0u)
* Cleaned up whitespaces (toin0u)
* Fixed utf-8 bug with lowercase generators (toin0u)
* Fixed composer.json (Seldaek)
* Fixed bug in Doctrine EntityPopulator (beberlei)
* Added Finnish (fi_FI) provider (drodil)
2012-10-29, v1.1.0
------------------
* Updated text provider to return paragraphs as a string instead of array. Great for populating markdown textarea fields (Seldaek)
* Updated dateTimeBetween to accept DateTime instances (Seldaek)
* Added random number generator between a and b, simply like rand() (Seldaek)
* Fixed spaces in generated emails (blaugueux)
* Fixed Person provider in Russian locale (Isamashii)
* Added new UserAgent provider (blaugueux)
* Added locale generator to Miscellaneous provider (blaugueux)
* Added timezone generator to DateTime provider (blaugueux)
* Added new generators to French Address providers (departments, regions) (geoffrey-brier)
* Added new generators to French Company provider (catch phrase, SIREN, and SIRET numbers) (geoffrey-brier)
* Added state generator to German Address provider (Powerhamster)
* Added Slovak provider (bazo)
* Added latitude and longitude formatters to Address provider (fixe)
* Added Serbian provider (umpirsky)
2012-07-10, v1.0.0
-----------------
* Initial Version

View File

@@ -0,0 +1,21 @@
Contributing
============
If you've written a new formatter, adapted Faker to a new locale, or fixed a bug, your contribution is welcome!
Before proposing a pull request, check the following:
* Your code should follow the [PSR-2 coding standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md) (and use [php-cs-fixer](https://github.com/fabpot/PHP-CS-Fixer) to fix inconsistencies).
* Unit tests should still pass after your patch
* As much as possible, add unit tests for your code
* If you add new providers (or new locales) and that they embed a lot of data for random generation (e.g. first names in a new language), please add a link to the reference you used for this list (example [in the ru_RU locale](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/ru_RU/Person.php#L13)). This will ease future updates of the list and debates about the most relevant data for this provider.
* If you add long list of random data, please split the list into several lines. This makes diffs easier to read, and facilitates core review.
* If you add new formatters, please include documentation for it in the README. Don't forget to add a line about new formatters in the `@property` or `@method` phpDoc entries in [Generator.php](https://github.com/fzaninotto/Faker/blob/master/src/Faker/Generator.php#L6-L118) to help IDEs auto-complete your formatters.
* If your new formatters are specific to a certain locale, document them in the [Language-specific formatters](https://github.com/fzaninotto/Faker#language-specific-formatters) list instead.
* Avoid changing existing sets of data. Some developers use Faker with seeding for unit tests ; changing the data makes their tests fail.
* Speed is important in all Faker usages. Make sure your code is optimized to generate thousands of fake items in no time, without consuming too much memory or CPU.
* If you commit a new feature, be prepared to help maintaining it. Watch the project on GitHub, and please comment on issues or PRs regarding the feature you contributed.
Once your code is merged, it is available for free to everybody under the MIT License. Publishing your Pull Request on the Faker GitHub repository means that you agree with this license for your contribution.
Thank you for your contribution! Faker wouldn't be so great without you.

22
core/vendor/fzaninotto/faker/LICENSE vendored Normal file
View File

@@ -0,0 +1,22 @@
Copyright (c) 2011 François Zaninotto
Portions Copyright (c) 2008 Caius Durling
Portions Copyright (c) 2008 Adam Royle
Portions Copyright (c) 2008 Fiona Burrows
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

10
core/vendor/fzaninotto/faker/Makefile vendored Normal file
View File

@@ -0,0 +1,10 @@
vendor/autoload.php:
composer install --no-interaction --prefer-source --dev
.PHONY: sniff
sniff: vendor/autoload.php
vendor/bin/phpcs --standard=PSR2 src -n
.PHONY: test
test: vendor/autoload.php
vendor/bin/phpunit --verbose

View File

@@ -0,0 +1,37 @@
{
"name": "fzaninotto/faker",
"type": "library",
"description": "Faker is a PHP library that generates fake data for you.",
"keywords": ["faker", "fixtures", "data"],
"license": "MIT",
"authors": [
{
"name": "François Zaninotto"
}
],
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~1.5"
},
"suggest": {
"ext-intl": "*"
},
"autoload": {
"psr-4": {
"Faker\\": "src/Faker/"
}
},
"autoload-dev": {
"psr-4": {
"Faker\\PHPUnit\\": "test/Faker/"
}
},
"extra": {
"branch-alias": {
"dev-master": "1.5.x-dev"
}
}
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/autoload.php">
<testsuites>
<testsuite name="Faker Test Suite">
<directory>./test/Faker/</directory>
</testsuite>
</testsuites>
</phpunit>

1048
core/vendor/fzaninotto/faker/readme.md vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,55 @@
<?php
namespace Faker\Calculator;
/**
* Utility class for generating Luhn checksum and validating a number
*
* Luhn algorithm is used to validate credit card numbers, IMEI numbers, and
* National Provider Identifier numbers.
*
* @see http://en.wikipedia.org/wiki/Luhn_algorithm
*/
class Luhn
{
/**
* @return int
*/
private static function checksum($number)
{
$number = (string) $number;
$length = strlen($number);
$sum = 0;
for ($i = $length - 1; $i >= 0; $i -= 2) {
$sum += $number{$i};
}
for ($i = $length - 2; $i >= 0; $i -= 2) {
$sum += array_sum(str_split($number{$i} * 2));
}
return $sum % 10;
}
/**
* @return string
*/
public static function computeCheckDigit($partialNumber)
{
$checkDigit = self::checksum($partialNumber . '0');
if ($checkDigit === 0) {
return 0;
}
return (string) (10 - $checkDigit);
}
/**
* Checks whether a number (partial number + check digit) is Luhn compliant
*
* @return boolean
*/
public static function isValid($number)
{
return self::checksum($number) === 0;
}
}

View File

@@ -0,0 +1,27 @@
<?php
namespace Faker;
/**
* This generator returns a default value for all called properties
* and methods. It works with Faker\Generator\Base->optional().
*/
class DefaultGenerator
{
protected $default = null;
public function __construct($default = null)
{
$this->default = $default;
}
public function __get($attribute)
{
return $this->default;
}
public function __call($method, $attributes)
{
return $this->default;
}
}

View File

@@ -0,0 +1,60 @@
<?php
namespace Faker;
class Documentor
{
protected $generator;
public function __construct(Generator $generator)
{
$this->generator = $generator;
}
public function getFormatters()
{
$formatters = array();
$providers = array_reverse($this->generator->getProviders());
$providers[]= new \Faker\Provider\Base($this->generator);
foreach ($providers as $provider) {
$providerClass = get_class($provider);
$formatters[$providerClass] = array();
$refl = new \ReflectionObject($provider);
foreach ($refl->getMethods(\ReflectionMethod::IS_PUBLIC) as $reflmethod) {
if ($reflmethod->getDeclaringClass()->getName() == 'Faker\Provider\Base' && $providerClass != 'Faker\Provider\Base') {
continue;
}
$methodName = $reflmethod->name;
if ($reflmethod->isConstructor()) {
continue;
}
$parameters = array();
foreach ($reflmethod->getParameters() as $reflparameter) {
$parameter = '$'. $reflparameter->getName();
if ($reflparameter->isDefaultValueAvailable()) {
$parameter .= ' = ' . var_export($reflparameter->getDefaultValue(), true);
}
$parameters []= $parameter;
}
$parameters = $parameters ? '('. join(', ', $parameters) . ')' : '';
try {
$example = $this->generator->format($methodName);
} catch (\InvalidArgumentException $e) {
$example = '';
}
if (is_array($example)) {
$example = "array('". join("', '", $example) . "')";
} elseif ($example instanceof \DateTime) {
$example = "DateTime('" . $example->format('Y-m-d H:i:s') . "')";
} elseif ($example instanceof Generator || $example instanceof UniqueGenerator) { // modifier
$example = '';
} else {
$example = var_export($example, true);
}
$formatters[$providerClass][$methodName . $parameters] = $example;
}
}
return $formatters;
}
}

View File

@@ -0,0 +1,46 @@
<?php
namespace Faker;
class Factory
{
const DEFAULT_LOCALE = 'en_US';
protected static $defaultProviders = array('Address', 'Barcode', 'Biased', 'Color', 'Company', 'DateTime', 'File', 'Image', 'Internet', 'Lorem', 'Miscellaneous', 'Payment', 'Person', 'PhoneNumber', 'Text', 'UserAgent', 'Uuid');
public static function create($locale = self::DEFAULT_LOCALE)
{
$generator = new Generator();
foreach (static::$defaultProviders as $provider) {
$providerClassName = self::getProviderClassname($provider, $locale);
$generator->addProvider(new $providerClassName($generator));
}
return $generator;
}
protected static function getProviderClassname($provider, $locale = '')
{
if ($providerClass = self::findProviderClassname($provider, $locale)) {
return $providerClass;
}
// fallback to default locale
if ($providerClass = self::findProviderClassname($provider, static::DEFAULT_LOCALE)) {
return $providerClass;
}
// fallback to no locale
$providerClass = self::findProviderClassname($provider);
if (class_exists($providerClass)) {
return $providerClass;
}
throw new \InvalidArgumentException(sprintf('Unable to find provider "%s" with locale "%s"', $provider, $locale));
}
protected static function findProviderClassname($provider, $locale = '')
{
$providerClass = 'Faker\\' . ($locale ? sprintf('Provider\%s\%s', $locale, $provider) : sprintf('Provider\%s', $provider));
if (class_exists($providerClass, true)) {
return $providerClass;
}
}
}

View File

@@ -0,0 +1,239 @@
<?php
namespace Faker;
/**
* @property string $name
* @property string $firstName
* @property string $firstNameMale
* @property string $firstNameFemale
* @property string $lastName
* @property string $title
* @property string $titleMale
* @property string $titleFemale
*
* @property string $citySuffix
* @property string $streetSuffix
* @property string $buildingNumber
* @property string $city
* @property string $streetName
* @property string $streetAddress
* @property string $postcode
* @property string $address
* @property string $country
* @property float $latitude
* @property float $longitude
*
* @property string $ean13
* @property string $ean8
* @property string $isbn13
* @property string $isbn10
*
* @property string $phoneNumber
*
* @property string $company
* @property string $companySuffix
*
* @property string $creditCardType
* @property string $creditCardNumber
* @method string creditCardNumber($type = null, $formatted = false, $separator = '-')
* @property \DateTime $creditCardExpirationDate
* @property string $creditCardExpirationDateString
* @property string $creditCardDetails
* @property string $bankAccountNumber
* @property string $swiftBicNumber
* @property string $vat
*
* @property string $word
* @property string|array $words
* @method string|array words($nb = 3, $asText = false)
* @property string $sentence
* @method string sentence($nbWords = 6, $variableNbWords = true)
* @property string|array $sentences
* @method string|array sentences($nb = 3, $asText = false)
* @property string $paragraph
* @method string paragraph($nbSentences = 3, $variableNbSentences = true)
* @property string|array $paragraphs
* @method string|array paragraphs($nb = 3, $asText = false)
* @property string $text
* @method string text($maxNbChars = 200)
*
* @method string realText($maxNbChars = 200, $indexSize = 2)
*
* @property string $email
* @property string $safeEmail
* @property string $freeEmail
* @property string $companyEmail
* @property string $freeEmailDomain
* @property string $safeEmailDomain
* @property string $userName
* @property string $password
* @method string password($minLength = 6, $maxLength = 20)
* @property string $domainName
* @property string $domainWord
* @property string $tld
* @property string $url
* @property string $slug
* @method string slug($nbWords = 6, $variableNbWords = true)
* @property string $ipv4
* @property string $ipv6
* @property string $localIpv4
* @property string $macAddress
*
* @property int $unixTime
* @property \DateTime $dateTime
* @property \DateTime $dateTimeAD
* @property string $iso8601
* @property \DateTime $dateTimeThisCentury
* @property \DateTime $dateTimeThisDecade
* @property \DateTime $dateTimeThisYear
* @property \DateTime $dateTimeThisMonth
* @property string $amPm
* @property int $dayOfMonth
* @property int $dayOfWeek
* @property int $month
* @property string $monthName
* @property int $year
* @property int $century
* @property string $timezone
* @method string date($format = 'Y-m-d', $max = 'now')
* @method string time($format = 'H:i:s', $max = 'now')
* @method \DateTime dateTimeBetween($startDate = '-30 years', $endDate = 'now')
*
* @property string $md5
* @property string $sha1
* @property string $sha256
* @property string $locale
* @property string $countryCode
* @property string $countryISOAlpha3
* @property string $languageCode
* @property string $currencyCode
* @method boolean boolean($chanceOfGettingTrue = 50)
*
* @property int $randomDigit
* @property int $randomDigitNotNull
* @property string $randomLetter
* @property string $randomAscii
* @method int randomNumber($nbDigits = null, $strict = false)
* @method int|string|null randomKey(array $array = array())
* @method int numberBetween($min = 0, $max = 2147483647)
* @method float randomFloat($nbMaxDecimals = null, $min = 0, $max = null)
* @method mixed randomElement(array $array = array('a', 'b', 'c'))
* @method array randomElements(array $array = array('a', 'b', 'c'), $count = 1)
* @method array|string shuffle($arg = '')
* @method array shuffleArray(array $array = array())
* @method string shuffleString($string = '', $encoding = 'UTF-8')
* @method string numerify($string = '###')
* @method string lexify($string = '????')
* @method string bothify($string = '## ??')
* @method string asciify($string = '****')
* @method string regexify($regex = '')
* @method string toLower($string = '')
* @method string toUpper($string = '')
* @method Generator optional($weight = 0.5, $default = null)
* @method Generator unique($reset = false, $maxRetries = 10000)
*
* @method integer biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt')
*
* @property string $macProcessor
* @property string $linuxProcessor
* @property string $userAgent
* @property string $chrome
* @property string $firefox
* @property string $safari
* @property string $opera
* @property string $internetExplorer
* @property string $windowsPlatformToken
* @property string $macPlatformToken
* @property string $linuxPlatformToken
*
* @property string $uuid
*
* @property string $mimeType
* @property string $fileExtension
* @method string file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true)
*
* @method string imageUrl($width = 640, $height = 480, $category = null, $randomize = true)
* @method string image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true)
*
* @property string $hexColor
* @property string $safeHexColor
* @property string $rgbColor
* @property array $rgbColorAsArray
* @property string $rgbCssColor
* @property string $safeColorName
* @property string $colorName
*/
class Generator
{
protected $providers = array();
protected $formatters = array();
public function addProvider($provider)
{
array_unshift($this->providers, $provider);
}
public function getProviders()
{
return $this->providers;
}
public function seed($seed = null)
{
if ($seed === null) {
mt_srand();
} else {
mt_srand($seed);
}
}
public function format($formatter, $arguments = array())
{
return call_user_func_array($this->getFormatter($formatter), $arguments);
}
/**
* @return Callable
*/
public function getFormatter($formatter)
{
if (isset($this->formatters[$formatter])) {
return $this->formatters[$formatter];
}
foreach ($this->providers as $provider) {
if (method_exists($provider, $formatter)) {
$this->formatters[$formatter] = array($provider, $formatter);
return $this->formatters[$formatter];
}
}
throw new \InvalidArgumentException(sprintf('Unknown formatter "%s"', $formatter));
}
/**
* Replaces tokens ('{{ tokenName }}') with the result from the token method call
*
* @param string $string String that needs to bet parsed
* @return string
*/
public function parse($string)
{
return preg_replace_callback('/\{\{\s?(\w+)\s?\}\}/u', array($this, 'callFormatWithMatches'), $string);
}
protected function callFormatWithMatches($matches)
{
return $this->format($matches[1]);
}
public function __get($attribute)
{
return $this->format($attribute);
}
public function __call($method, $attributes)
{
return $this->format($method, $attributes);
}
}

View File

@@ -0,0 +1,92 @@
<?php
namespace Faker\Guesser;
use \Faker\Provider\Base;
class Name
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($name)
{
$name = Base::toLower($name);
$generator = $this->generator;
if (preg_match('/^is[_A-Z]/', $name)) {
return function () use ($generator) {
return $generator->boolean;
};
}
if (preg_match('/(_a|A)t$/', $name)) {
return function () use ($generator) {
return $generator->dateTime;
};
}
switch ($name) {
case 'first_name':
case 'firstname':
return function () use ($generator) {
return $generator->firstName;
};
case 'last_name':
case 'lastname':
return function () use ($generator) {
return $generator->lastName;
};
case 'username':
case 'login':
return function () use ($generator) {
return $generator->userName;
};
case 'email':
return function () use ($generator) {
return $generator->email;
};
case 'phone_number':
case 'phonenumber':
case 'phone':
return function () use ($generator) {
return $generator->phoneNumber;
};
case 'address':
return function () use ($generator) {
return $generator->address;
};
case 'city':
return function () use ($generator) {
return $generator->city;
};
case 'streetaddress':
return function () use ($generator) {
return $generator->streetAddress;
};
case 'postcode':
case 'zipcode':
return function () use ($generator) {
return $generator->postcode;
};
case 'state':
return function () use ($generator) {
return $generator->state;
};
case 'country':
return function () use ($generator) {
return $generator->country;
};
case 'title':
return function () use ($generator) {
return $generator->sentence;
};
case 'body':
case 'summary':
return function () use ($generator) {
return $generator->text;
};
}
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Faker\ORM\CakePHP;
class ColumnTypeGuesser
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($column, $table)
{
$generator = $this->generator;
$schema = $table->schema();
switch ($schema->columnType($column)) {
case 'boolean':
return function () use ($generator) {
return $generator->boolean;
};
case 'integer':
return function () use ($generator) {
return $generator->randomNumber(10);
};
case 'biginteger':
return function () use ($generator) {
return $generator->randomNumber(20);
};
case 'decimal':
case 'float':
return function () use ($generator) {
return $generator->randomFloat();
};
case 'uuid':
return function () use ($generator) {
return $generator->uuid();
};
case 'string':
$columnData = $schema->column($column);
$length = $columnData['length'];
return function () use ($generator, $length) {
return $generator->text($length);
};
case 'text':
return function () use ($generator) {
return $generator->text();
};
case 'date':
case 'datetime':
case 'timestamp':
case 'time':
return function () use ($generator) {
return $generator->datetime();
};
case 'binary':
default:
return null;
}
}
}

View File

@@ -0,0 +1,149 @@
<?php
namespace Faker\ORM\CakePHP;
use Cake\ORM\TableRegistry;
use Faker\Guesser\Name as NameGuesser;
class EntityPopulator
{
protected $class;
protected $connectionName;
protected $columnFormatters = [];
protected $modifiers = [];
public function __construct($class)
{
$this->class = $class;
}
public function __get($name)
{
return $this->{$name};
}
public function __set($name, $value)
{
$this->{$name} = $value;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function mergeModifiersWith($modifiers)
{
$this->modifiers = array_merge($this->modifiers, $modifiers);
}
public function guessColumnFormatters($populator)
{
$formatters = [];
$class = $this->class;
$table = $this->getTable($class);
$schema = $table->schema();
$pk = $schema->primaryKey();
$guessers = $populator->getGuessers() + ['ColumnTypeGuesser' => new ColumnTypeGuesser($populator->getGenerator())];
$isForeignKey = function ($column) use ($table) {
foreach ($table->associations()->type('BelongsTo') as $assoc) {
if ($column == $assoc->foreignKey()) {
return true;
}
}
return false;
};
foreach ($schema->columns() as $column) {
if ($column == $pk[0] || $isForeignKey($column)) {
continue;
}
foreach ($guessers as $guesser) {
if ($formatter = $guesser->guessFormat($column, $table)) {
$formatters[$column] = $formatter;
break;
}
}
}
return $formatters;
}
public function guessModifiers($populator)
{
$modifiers = [];
$table = $this->getTable($this->class);
$belongsTo = $table->associations()->type('BelongsTo');
foreach ($belongsTo as $assoc) {
$modifiers['belongsTo' . $assoc->name()] = function ($data, $insertedEntities) use ($assoc) {
$table = $assoc->target();
$foreignModel = $table->alias();
$foreignKeys = [];
if (!empty($insertedEntities[$foreignModel])) {
$foreignKeys = $insertedEntities[$foreignModel];
} else {
$foreignKeys = $table->find('all')
->select(['id'])
->map(function ($row) {
return $row->id;
})
->toArray();
}
if (empty($foreignKeys)) {
throw new \Exception(sprintf('%s belongsTo %s, which seems empty at this point.', $this->getTable($this->class)->table(), $assoc->table()));
}
$foreignKey = $foreignKeys[array_rand($foreignKeys)];
$primaryKey = $table->primaryKey();
$data[$assoc->foreignKey()] = $foreignKey;
return $data;
};
}
// TODO check if TreeBehavior attached to modify lft/rgt cols
return $modifiers;
}
public function execute($class, $insertedEntities, $options = [])
{
$table = $this->getTable($class);
$entity = $table->newEntity();
foreach ($this->columnFormatters as $column => $format) {
if (!is_null($format)) {
$entity->{$column} = is_callable($format) ? $format($insertedEntities, $table) : $format;
}
}
foreach ($this->modifiers as $modifier) {
$entity = $modifier($entity, $insertedEntities);
}
if (!$entity = $table->save($entity, $options)) {
throw new \RuntimeException("Failed saving $class record");
}
$pk = $table->primaryKey();
return $entity->{$pk};
}
public function setConnection($name)
{
$this->connectionName = $name;
}
protected function getTable($class)
{
$options = [];
if (!empty($this->connectionName)) {
$options['connection'] = $this->connectionName;
}
return TableRegistry::get($class, $options);
}
}

View File

@@ -0,0 +1,84 @@
<?php
namespace Faker\ORM\CakePHP;
class Populator
{
protected $generator;
protected $entities = [];
protected $quantities = [];
protected $guessers = [];
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function getGenerator()
{
return $this->generator;
}
public function getGuessers()
{
return $this->guessers;
}
public function removeGuesser($name)
{
if ($this->guessers[$name]) {
unset($this->guessers[$name]);
}
return $this;
}
public function addGuesser($class)
{
if (!is_object($class)) {
$class = new $class($this->generator);
}
if (!method_exists($class, 'guessFormat')) {
throw new \Exception('Missing required custom guesser method: ' . get_class($class) . '::guessFormat()');
}
$this->guessers[get_class($class)] = $class;
return $this;
}
public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = [])
{
if (!$entity instanceof EntityPopulator) {
$entity = new EntityPopulator($entity);
}
$entity->columnFormatters = $entity->guessColumnFormatters($this);
if ($customColumnFormatters) {
$entity->mergeColumnFormattersWith($customColumnFormatters);
}
$entity->modifiers = $entity->guessModifiers($this);
if ($customModifiers) {
$entity->mergeModifiers($customModifiers);
}
$class = $entity->class;
$this->entities[$class] = $entity;
$this->quantities[$class] = $number;
return $this;
}
public function execute($options = [])
{
$insertedEntities = [];
foreach ($this->quantities as $class => $number) {
for ($i = 0; $i < $number; $i++) {
$insertedEntities[$class][] = $this->entities[$class]->execute($class, $insertedEntities, $options);
}
}
return $insertedEntities;
}
}

View File

@@ -0,0 +1,68 @@
<?php
namespace Faker\ORM\Doctrine;
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
class ColumnTypeGuesser
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($fieldName, ClassMetadata $class)
{
$generator = $this->generator;
$type = $class->getTypeOfField($fieldName);
switch ($type) {
case 'boolean':
return function () use ($generator) {
return $generator->boolean;
};
case 'decimal':
$size = isset($class->fieldMappings[$fieldName]['precision']) ? $class->fieldMappings[$fieldName]['precision'] : 2;
return function () use ($generator, $size) {
return $generator->randomNumber($size + 2) / 100;
};
case 'smallint':
return function () {
return mt_rand(0, 65535);
};
case 'integer':
return function () {
return mt_rand(0, intval('2147483647'));
};
case 'bigint':
return function () {
return mt_rand(0, intval('18446744073709551615'));
};
case 'float':
return function () {
return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295'));
};
case 'string':
$size = isset($class->fieldMappings[$fieldName]['length']) ? $class->fieldMappings[$fieldName]['length'] : 255;
return function () use ($generator, $size) {
return $generator->text($size);
};
case 'text':
return function () use ($generator) {
return $generator->text;
};
case 'datetime':
case 'date':
case 'time':
return function () use ($generator) {
return $generator->datetime;
};
default:
// no smart way to guess what the user expects here
return null;
}
}
}

View File

@@ -0,0 +1,193 @@
<?php
namespace Faker\ORM\Doctrine;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\Mapping\ClassMetadata;
/**
* Service class for populating a table through a Doctrine Entity class.
*/
class EntityPopulator
{
/**
* @var ClassMetadata
*/
protected $class;
/**
* @var array
*/
protected $columnFormatters = array();
/**
* @var array
*/
protected $modifiers = array();
/**
* Class constructor.
*
* @param ClassMetadata $class
*/
public function __construct(ClassMetadata $class)
{
$this->class = $class;
}
/**
* @return string
*/
public function getClass()
{
return $this->class->getName();
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function setModifiers(array $modifiers)
{
$this->modifiers = $modifiers;
}
public function getModifiers()
{
return $this->modifiers;
}
public function mergeModifiersWith(array $modifiers)
{
$this->modifiers = array_merge($this->modifiers, $modifiers);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new ColumnTypeGuesser($generator);
foreach ($this->class->getFieldNames() as $fieldName) {
if ($this->class->isIdentifier($fieldName) || !$this->class->hasField($fieldName)) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($fieldName)) {
$formatters[$fieldName] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($fieldName, $this->class)) {
$formatters[$fieldName] = $formatter;
continue;
}
}
foreach ($this->class->getAssociationNames() as $assocName) {
if ($this->class->isCollectionValuedAssociation($assocName)) {
continue;
}
$relatedClass = $this->class->getAssociationTargetClass($assocName);
$unique = $optional = false;
$mappings = $this->class->getAssociationMappings();
foreach ($mappings as $mapping) {
if ($mapping['targetEntity'] == $relatedClass) {
if ($mapping['type'] == ClassMetadata::ONE_TO_ONE) {
$unique = true;
$optional = isset($mapping['joinColumns'][0]['nullable']) ? $mapping['joinColumns'][0]['nullable'] : false;
break;
}
}
}
$index = 0;
$formatters[$assocName] = function ($inserted) use ($relatedClass, &$index, $unique, $optional) {
if ($unique && isset($inserted[$relatedClass])) {
$related = null;
if (isset($inserted[$relatedClass][$index]) || !$optional) {
$related = $inserted[$relatedClass][$index];
}
$index++;
return $related;
} elseif (isset($inserted[$relatedClass])) {
return $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)];
}
return null;
};
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute(ObjectManager $manager, $insertedEntities, $generateId = false)
{
$obj = $this->class->newInstance();
$this->fillColumns($obj, $insertedEntities);
$this->callMethods($obj, $insertedEntities);
if ($generateId) {
$idsName = $this->class->getIdentifier();
foreach ($idsName as $idName) {
$id = $this->generateId($obj, $idName, $manager);
$this->class->reflFields[$idName]->setValue($obj, $id);
}
}
$manager->persist($obj);
return $obj;
}
private function fillColumns($obj, $insertedEntities)
{
foreach ($this->columnFormatters as $field => $format) {
if (null !== $format) {
$value = is_callable($format) ? $format($insertedEntities, $obj) : $format;
$this->class->reflFields[$field]->setValue($obj, $value);
}
}
}
private function callMethods($obj, $insertedEntities)
{
foreach ($this->getModifiers() as $modifier) {
$modifier($obj, $insertedEntities);
}
}
private function generateId($obj, $column, EntityManagerInterface $manager)
{
/* @var $repository \Doctrine\ORM\EntityRepository */
$repository = $manager->getRepository(get_class($obj));
$result = $repository->createQueryBuilder('e')
->select(sprintf('e.%s', $column))
->getQuery()
->getResult();
$ids = array_map('current', $result);
$id = null;
do {
$id = rand();
} while (in_array($id, $ids));
return $id;
}
}

View File

@@ -0,0 +1,78 @@
<?php
namespace Faker\ORM\Doctrine;
use Doctrine\Common\Persistence\ObjectManager;
/**
* Service class for populating a database using the Doctrine ORM or ODM.
* A Populator can populate several tables using ActiveRecord classes.
*/
class Populator
{
protected $generator;
protected $manager;
protected $entities = array();
protected $quantities = array();
protected $generateId = array();
public function __construct(\Faker\Generator $generator, ObjectManager $manager = null)
{
$this->generator = $generator;
$this->manager = $manager;
}
/**
* Add an order for the generation of $number records for $entity.
*
* @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance
* @param int $number The number of entities to populate
*/
public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array(), $generateId = false)
{
if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) {
if (null === $this->manager) {
throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator.");
}
$entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity));
}
$entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
if ($customColumnFormatters) {
$entity->mergeColumnFormattersWith($customColumnFormatters);
}
$entity->mergeModifiersWith($customModifiers);
$this->generateId[$entity->getClass()] = $generateId;
$class = $entity->getClass();
$this->entities[$class] = $entity;
$this->quantities[$class] = $number;
}
/**
* Populate the database using all the Entity classes previously added.
*
* @param EntityManager $entityManager A Doctrine connection object
*
* @return array A list of the inserted PKs
*/
public function execute($entityManager = null)
{
if (null === $entityManager) {
$entityManager = $this->manager;
}
if (null === $entityManager) {
throw new \InvalidArgumentException("No entity manager passed to Doctrine Populator.");
}
$insertedEntities = array();
foreach ($this->quantities as $class => $number) {
$generateId = $this->generateId[$class];
for ($i=0; $i < $number; $i++) {
$insertedEntities[$class][]= $this->entities[$class]->execute($entityManager, $insertedEntities, $generateId);
}
$entityManager->flush();
}
return $insertedEntities;
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace Faker\ORM\Mandango;
class ColumnTypeGuesser
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat($field)
{
$generator = $this->generator;
switch ($field['type']) {
case 'boolean':
return function () use ($generator) {
return $generator->boolean;
};
case 'integer':
return function () {
return mt_rand(0, intval('4294967295'));
};
case 'float':
return function () {
return mt_rand(0, intval('4294967295'))/mt_rand(1, intval('4294967295'));
};
case 'string':
return function () use ($generator) {
return $generator->text(255);
};
case 'date':
return function () use ($generator) {
return $generator->datetime;
};
default:
// no smart way to guess what the user expects here
return null;
}
}
}

View File

@@ -0,0 +1,110 @@
<?php
namespace Faker\ORM\Mandango;
use Mandango\Mandango;
use Faker\Provider\Base;
/**
* Service class for populating a table through a Mandango ActiveRecord class.
*/
class EntityPopulator
{
protected $class;
protected $columnFormatters = array();
/**
* Class constructor.
*
* @param string $class A Mandango ActiveRecord classname
*/
public function __construct($class)
{
$this->class = $class;
}
public function getClass()
{
return $this->class;
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator, Mandango $mandango)
{
$formatters = array();
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new \Faker\ORM\Mandango\ColumnTypeGuesser($generator);
$metadata = $mandango->getMetadata($this->class);
// fields
foreach ($metadata['fields'] as $fieldName => $field) {
if ($formatter = $nameGuesser->guessFormat($fieldName)) {
$formatters[$fieldName] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($field)) {
$formatters[$fieldName] = $formatter;
continue;
}
}
// references
foreach (array_merge($metadata['referencesOne'], $metadata['referencesMany']) as $referenceName => $reference) {
if (!isset($reference['class'])) {
continue;
}
$referenceClass = $reference['class'];
$formatters[$referenceName] = function ($insertedEntities) use ($referenceClass) {
if (isset($insertedEntities[$referenceClass])) {
return Base::randomElement($insertedEntities[$referenceClass]);
}
};
}
return $formatters;
}
/**
* Insert one new record using the Entity class.
*/
public function execute(Mandango $mandango, $insertedEntities)
{
$metadata = $mandango->getMetadata($this->class);
$obj = $mandango->create($this->class);
foreach ($this->columnFormatters as $column => $format) {
if (null !== $format) {
$value = is_callable($format) ? $format($insertedEntities, $obj) : $format;
if (isset($metadata['fields'][$column]) ||
isset($metadata['referencesOne'][$column])) {
$obj->set($column, $value);
}
if (isset($metadata['referencesMany'][$column])) {
$adder = 'add'.ucfirst($column);
$obj->$adder($value);
}
}
}
$mandango->persist($obj);
return $obj;
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace Faker\ORM\Mandango;
use Mandango\Mandango;
/**
* Service class for populating a database using Mandango.
* A Populator can populate several tables using ActiveRecord classes.
*/
class Populator
{
protected $generator;
protected $mandango;
protected $entities = array();
protected $quantities = array();
public function __construct(\Faker\Generator $generator, Mandango $mandango)
{
$this->generator = $generator;
$this->mandango = $mandango;
}
/**
* Add an order for the generation of $number records for $entity.
*
* @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
* @param int $number The number of entities to populate
*/
public function addEntity($entity, $number, $customColumnFormatters = array())
{
if (!$entity instanceof \Faker\ORM\Mandango\EntityPopulator) {
$entity = new \Faker\ORM\Mandango\EntityPopulator($entity);
}
$entity->setColumnFormatters($entity->guessColumnFormatters($this->generator, $this->mandango));
if ($customColumnFormatters) {
$entity->mergeColumnFormattersWith($customColumnFormatters);
}
$class = $entity->getClass();
$this->entities[$class] = $entity;
$this->quantities[$class] = $number;
}
/**
* Populate the database using all the Entity classes previously added.
*
* @return array A list of the inserted entities.
*/
public function execute()
{
$insertedEntities = array();
foreach ($this->quantities as $class => $number) {
for ($i=0; $i < $number; $i++) {
$insertedEntities[$class][]= $this->entities[$class]->execute($this->mandango, $insertedEntities);
}
}
$this->mandango->flush();
return $insertedEntities;
}
}

View File

@@ -0,0 +1,99 @@
<?php
namespace Faker\ORM\Propel;
use \PropelColumnTypes;
use \ColumnMap;
class ColumnTypeGuesser
{
protected $generator;
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
public function guessFormat(ColumnMap $column)
{
$generator = $this->generator;
if ($column->isTemporal()) {
if ($column->isEpochTemporal()) {
return function () use ($generator) {
return $generator->dateTime;
};
} else {
return function () use ($generator) {
return $generator->dateTimeAD;
};
}
}
$type = $column->getType();
switch ($type) {
case PropelColumnTypes::BOOLEAN:
case PropelColumnTypes::BOOLEAN_EMU:
return function () use ($generator) {
return $generator->boolean;
};
case PropelColumnTypes::NUMERIC:
case PropelColumnTypes::DECIMAL:
$size = $column->getSize();
return function () use ($generator, $size) {
return $generator->randomNumber($size + 2) / 100;
};
case PropelColumnTypes::TINYINT:
return function () {
return mt_rand(0, 127);
};
case PropelColumnTypes::SMALLINT:
return function () {
return mt_rand(0, 32767);
};
case PropelColumnTypes::INTEGER:
return function () {
return mt_rand(0, intval('2147483647'));
};
case PropelColumnTypes::BIGINT:
return function () {
return mt_rand(0, intval('9223372036854775807'));
};
case PropelColumnTypes::FLOAT:
return function () {
return mt_rand(0, intval('2147483647'))/mt_rand(1, intval('2147483647'));
};
case PropelColumnTypes::DOUBLE:
case PropelColumnTypes::REAL:
return function () {
return mt_rand(0, intval('9223372036854775807'))/mt_rand(1, intval('9223372036854775807'));
};
case PropelColumnTypes::CHAR:
case PropelColumnTypes::VARCHAR:
case PropelColumnTypes::BINARY:
case PropelColumnTypes::VARBINARY:
$size = $column->getSize();
return function () use ($generator, $size) {
return $generator->text($size);
};
case PropelColumnTypes::LONGVARCHAR:
case PropelColumnTypes::LONGVARBINARY:
case PropelColumnTypes::CLOB:
case PropelColumnTypes::CLOB_EMU:
case PropelColumnTypes::BLOB:
return function () use ($generator) {
return $generator->text;
};
case PropelColumnTypes::ENUM:
$valueSet = $column->getValueSet();
return function () use ($generator, $valueSet) {
return $generator->randomElement($valueSet);
};
case PropelColumnTypes::OBJECT:
case PropelColumnTypes::PHP_ARRAY:
// no smart way to guess what the user expects here
return null;
}
}
}

View File

@@ -0,0 +1,170 @@
<?php
namespace Faker\ORM\Propel;
use \Faker\Provider\Base;
use \ColumnMap;
/**
* Service class for populating a table through a Propel ActiveRecord class.
*/
class EntityPopulator
{
protected $class;
protected $columnFormatters = array();
protected $modifiers = array();
/**
* Class constructor.
*
* @param string $class A Propel ActiveRecord classname
*/
public function __construct($class)
{
$this->class = $class;
}
public function getClass()
{
return $this->class;
}
public function setColumnFormatters($columnFormatters)
{
$this->columnFormatters = $columnFormatters;
}
public function getColumnFormatters()
{
return $this->columnFormatters;
}
public function mergeColumnFormattersWith($columnFormatters)
{
$this->columnFormatters = array_merge($this->columnFormatters, $columnFormatters);
}
public function guessColumnFormatters(\Faker\Generator $generator)
{
$formatters = array();
$class = $this->class;
$peerClass = $class::PEER;
$tableMap = $peerClass::getTableMap();
$nameGuesser = new \Faker\Guesser\Name($generator);
$columnTypeGuesser = new \Faker\ORM\Propel\ColumnTypeGuesser($generator);
foreach ($tableMap->getColumns() as $columnMap) {
// skip behavior columns, handled by modifiers
if ($this->isColumnBehavior($columnMap)) {
continue;
}
if ($columnMap->isForeignKey()) {
$relatedClass = $columnMap->getRelation()->getForeignTable()->getClassname();
$formatters[$columnMap->getPhpName()] = function ($inserted) use ($relatedClass) {
return isset($inserted[$relatedClass]) ? $inserted[$relatedClass][mt_rand(0, count($inserted[$relatedClass]) - 1)] : null;
};
continue;
}
if ($columnMap->isPrimaryKey()) {
continue;
}
if ($formatter = $nameGuesser->guessFormat($columnMap->getPhpName())) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
if ($formatter = $columnTypeGuesser->guessFormat($columnMap)) {
$formatters[$columnMap->getPhpName()] = $formatter;
continue;
}
}
return $formatters;
}
protected function isColumnBehavior(ColumnMap $columnMap)
{
foreach ($columnMap->getTable()->getBehaviors() as $name => $params) {
$columnName = Base::toLower($columnMap->getName());
switch ($name) {
case 'nested_set':
$columnNames = array($params['left_column'], $params['right_column'], $params['level_column']);
if (in_array($columnName, $columnNames)) {
return true;
}
break;
case 'timestampable':
$columnNames = array($params['create_column'], $params['update_column']);
if (in_array($columnName, $columnNames)) {
return true;
}
break;
}
}
return false;
}
public function setModifiers($modifiers)
{
$this->modifiers = $modifiers;
}
public function getModifiers()
{
return $this->modifiers;
}
public function mergeModifiersWith($modifiers)
{
$this->modifiers = array_merge($this->modifiers, $modifiers);
}
public function guessModifiers(\Faker\Generator $generator)
{
$modifiers = array();
$class = $this->class;
$peerClass = $class::PEER;
$tableMap = $peerClass::getTableMap();
foreach ($tableMap->getBehaviors() as $name => $params) {
switch ($name) {
case 'nested_set':
$modifiers['nested_set'] = function ($obj, $inserted) use ($class, $generator) {
if (isset($inserted[$class])) {
$queryClass = $class . 'Query';
$parent = $queryClass::create()->findPk($generator->randomElement($inserted[$class]));
$obj->insertAsLastChildOf($parent);
} else {
$obj->makeRoot();
}
};
break;
case 'sortable':
$modifiers['sortable'] = function ($obj, $inserted) use ($class, $generator) {
$maxRank = isset($inserted[$class]) ? count($inserted[$class]) : 0;
$obj->insertAtRank(mt_rand(1, $maxRank + 1));
};
break;
}
}
return $modifiers;
}
/**
* Insert one new record using the Entity class.
*/
public function execute($con, $insertedEntities)
{
$obj = new $this->class();
foreach ($this->getColumnFormatters() as $column => $format) {
if (null !== $format) {
$obj->setByName($column, is_callable($format) ? $format($insertedEntities, $obj) : $format);
}
}
foreach ($this->getModifiers() as $modifier) {
$modifier($obj, $insertedEntities);
}
$obj->save($con);
return $obj->getPrimaryKey();
}
}

View File

@@ -0,0 +1,86 @@
<?php
namespace Faker\ORM\Propel;
/**
* Service class for populating a database using the Propel ORM.
* A Populator can populate several tables using ActiveRecord classes.
*/
class Populator
{
protected $generator;
protected $entities = array();
protected $quantities = array();
public function __construct(\Faker\Generator $generator)
{
$this->generator = $generator;
}
/**
* Add an order for the generation of $number records for $entity.
*
* @param mixed $entity A Propel ActiveRecord classname, or a \Faker\ORM\Propel\EntityPopulator instance
* @param int $number The number of entities to populate
*/
public function addEntity($entity, $number, $customColumnFormatters = array(), $customModifiers = array())
{
if (!$entity instanceof \Faker\ORM\Propel\EntityPopulator) {
$entity = new \Faker\ORM\Propel\EntityPopulator($entity);
}
$entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
if ($customColumnFormatters) {
$entity->mergeColumnFormattersWith($customColumnFormatters);
}
$entity->setModifiers($entity->guessModifiers($this->generator));
if ($customModifiers) {
$entity->mergeModifiersWith($customModifiers);
}
$class = $entity->getClass();
$this->entities[$class] = $entity;
$this->quantities[$class] = $number;
}
/**
* Populate the database using all the Entity classes previously added.
*
* @param PropelPDO $con A Propel connection object
*
* @return array A list of the inserted PKs
*/
public function execute($con = null)
{
if (null === $con) {
$con = $this->getConnection();
}
$isInstancePoolingEnabled = \Propel::isInstancePoolingEnabled();
\Propel::disableInstancePooling();
$insertedEntities = array();
$con->beginTransaction();
foreach ($this->quantities as $class => $number) {
for ($i=0; $i < $number; $i++) {
$insertedEntities[$class][]= $this->entities[$class]->execute($con, $insertedEntities);
}
}
$con->commit();
if ($isInstancePoolingEnabled) {
\Propel::enableInstancePooling();
}
return $insertedEntities;
}
protected function getConnection()
{
// use the first connection available
$class = key($this->entities);
if (!$class) {
throw new \RuntimeException('No class found from entities. Did you add entities to the Populator ?');
}
$peer = $class::PEER;
return \Propel::getConnection($peer::DATABASE_NAME, \Propel::CONNECTION_WRITE);
}
}

View File

@@ -0,0 +1,123 @@
<?php
namespace Faker\Provider;
class Address extends \Faker\Provider\Base
{
protected static $citySuffix = array('Ville');
protected static $streetSuffix = array('Street');
protected static $cityFormats = array(
'{{firstName}}{{citySuffix}}',
);
protected static $streetNameFormats = array(
'{{lastName}} {{streetSuffix}}'
);
protected static $streetAddressFormats = array(
'{{buildingNumber}} {{streetName}}'
);
protected static $addressFormats = array(
'{{streetAddress}} {{postcode}} {{city}}',
);
protected static $buildingNumber = array('##');
protected static $postcode = array('#####');
protected static $country = array();
/**
* @example 'town'
*/
public static function citySuffix()
{
return static::randomElement(static::$citySuffix);
}
/**
* @example 'Avenue'
*/
public static function streetSuffix()
{
return static::randomElement(static::$streetSuffix);
}
/**
* @example '791'
*/
public static function buildingNumber()
{
return static::numerify(static::randomElement(static::$buildingNumber));
}
/**
* @example 'Sashabury'
*/
public function city()
{
$format = static::randomElement(static::$cityFormats);
return $this->generator->parse($format);
}
/**
* @example 'Crist Parks'
*/
public function streetName()
{
$format = static::randomElement(static::$streetNameFormats);
return $this->generator->parse($format);
}
/**
* @example '791 Crist Parks'
*/
public function streetAddress()
{
$format = static::randomElement(static::$streetAddressFormats);
return $this->generator->parse($format);
}
/**
* @example 86039-9874
*/
public static function postcode()
{
return static::toUpper(static::bothify(static::randomElement(static::$postcode)));
}
/**
* @example '791 Crist Parks, Sashabury, IL 86039-9874'
*/
public function address()
{
$format = static::randomElement(static::$addressFormats);
return $this->generator->parse($format);
}
/**
* @example 'Japan'
*/
public static function country()
{
return static::randomElement(static::$country);
}
/**
* @example 77.147489
* @return float Uses signed degrees format (returns a float number between -90 and 90)
*/
public static function latitude()
{
return static::randomFloat(6, 0, 180) - 90;
}
/**
* @example 86.211205
* @return float Uses signed degrees format (returns a float number between -180 and 180)
*/
public static function longitude()
{
return static::randomFloat(6, 0, 360) - 180;
}
}

View File

@@ -0,0 +1,110 @@
<?php
namespace Faker\Provider;
/**
* @see http://en.wikipedia.org/wiki/EAN-13
* @see http://en.wikipedia.org/wiki/ISBN
*/
class Barcode extends \Faker\Provider\Base
{
private function ean($length = 13)
{
$code = $this->numerify(str_repeat('#', $length - 1));
return $code . static::eanChecksum($code);
}
/**
* Utility function for computing EAN checksums
*/
protected static function eanChecksum($input)
{
$sequence = (strlen($input) - 1) == 8 ? array(3, 1) : array(1, 3);
$sums = 0;
foreach (str_split($input) as $n => $digit) {
$sums += $digit * $sequence[$n % 2];
}
return (10 - $sums % 10) % 10;
}
/**
* ISBN-10 check digit
* @link http://en.wikipedia.org/wiki/International_Standard_Book_Number#ISBN-10_check_digits
*
* @param string $input ISBN without check-digit
* @throws \LengthException When wrong input length passed
*
* @return integer Check digit
*/
protected static function isbnChecksum($input)
{
// We're calculating check digit for ISBN-10
// so, the length of the input should be 9
$length = 9;
if (strlen($input) != $length) {
throw new \LengthException(sprintf('Input length should be equal to %d', $length));
}
$digits = str_split($input);
array_walk(
$digits,
function (&$digit, $position) {
$digit = (10 - $position) * $digit;
}
);
$result = (11 - array_sum($digits) % 11) % 11;
// 10 is replaced by X
return ($result < 10)?$result:'X';
}
/**
* Get a random EAN13 barcode.
* @return string
* @example '4006381333931'
*/
public function ean13()
{
return $this->ean(13);
}
/**
* Get a random EAN8 barcode.
* @return string
* @example '73513537'
*/
public function ean8()
{
return $this->ean(8);
}
/**
* Get a random ISBN-10 code
* @link http://en.wikipedia.org/wiki/International_Standard_Book_Number
*
* @return string
* @example '4881416324'
*/
public function isbn10()
{
$code = $this->numerify(str_repeat('#', 9));
return $code . static::isbnChecksum($code);
}
/**
* Get a random ISBN-13 code
* @link http://en.wikipedia.org/wiki/International_Standard_Book_Number
*
* @return string
* @example '9790404436093'
*/
public function isbn13()
{
$code = '97' . static::numberBetween(8, 9) . $this->numerify(str_repeat('#', 9));
return $code . static::eanChecksum($code);
}
}

View File

@@ -0,0 +1,509 @@
<?php
namespace Faker\Provider;
use Faker\Generator;
use Faker\DefaultGenerator;
use Faker\UniqueGenerator;
class Base
{
/**
* @var \Faker\Generator
*/
protected $generator;
/**
* @var \Faker\UniqueGenerator
*/
protected $unique;
/**
* @param \Faker\Generator $generator
*/
public function __construct(Generator $generator)
{
$this->generator = $generator;
}
/**
* Returns a random number between 0 and 9
*
* @return integer
*/
public static function randomDigit()
{
return mt_rand(0, 9);
}
/**
* Returns a random number between 1 and 9
*
* @return integer
*/
public static function randomDigitNotNull()
{
return mt_rand(1, 9);
}
/**
* Returns a random integer with 0 to $nbDigits digits.
*
* The maximum value returned is mt_getrandmax()
*
* @param integer $nbDigits Defaults to a random number between 1 and 9
* @param boolean $strict Whether the returned number should have exactly $nbDigits
* @example 79907610
*
* @return integer
*/
public static function randomNumber($nbDigits = null, $strict = false)
{
if (!is_bool($strict)) {
throw new \InvalidArgumentException('randomNumber() generates numbers of fixed width. To generate numbers between two boundaries, use numberBetween() instead.');
}
if (null === $nbDigits) {
$nbDigits = static::randomDigitNotNull();
}
$max = pow(10, $nbDigits) - 1;
if ($max > mt_getrandmax()) {
throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()');
}
if ($strict) {
return mt_rand(pow(10, $nbDigits - 1), $max);
}
return mt_rand(0, $max);
}
/**
* Return a random float number
*
* @param int $nbMaxDecimals
* @param int|float $min
* @param int|float $max
* @example 48.8932
*
* @return float
*/
public static function randomFloat($nbMaxDecimals = null, $min = 0, $max = null)
{
if (null === $nbMaxDecimals) {
$nbMaxDecimals = static::randomDigit();
}
if (null === $max) {
$max = static::randomNumber();
}
if ($min > $max) {
$tmp = $min;
$min = $max;
$max = $tmp;
}
return round($min + mt_rand() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
}
/**
* Returns a random number between $min and $max
*
* @param integer $min default to 0
* @param integer $max defaults to 32 bit max integer, ie 2147483647
* @example 79907610
*
* @return integer
*/
public static function numberBetween($min = 0, $max = 2147483647)
{
return mt_rand($min, $max);
}
/**
* Returns a random letter from a to z
*
* @return string
*/
public static function randomLetter()
{
return chr(mt_rand(97, 122));
}
/**
* Returns a random ASCII character (excluding accents and special chars)
*/
public static function randomAscii()
{
return chr(mt_rand(33, 126));
}
/**
* Returns random elements from a provided array
*
* @param array $array Array to take elements from. Defaults to a-f
* @param integer $count Number of elements to take.
* @throws \LengthException When requesting more elements than provided
*
* @return array New array with $count elements from $array
*/
public static function randomElements(array $array = array('a', 'b', 'c'), $count = 1)
{
$allKeys = array_keys($array);
$numKeys = count($allKeys);
if ($numKeys < $count) {
throw new \LengthException(sprintf('Cannot get %d elements, only %d in array', $count, $numKeys));
}
$highKey = $numKeys - 1;
$keys = $elements = array();
$numElements = 0;
while ($numElements < $count) {
$num = mt_rand(0, $highKey);
if (isset($keys[$num])) {
continue;
}
$keys[$num] = true;
$elements[] = $array[$allKeys[$num]];
$numElements++;
}
return $elements;
}
/**
* Returns a random element from a passed array
*
* @param array $array
* @return mixed
*/
public static function randomElement($array = array('a', 'b', 'c'))
{
if (!$array) {
return null;
}
$elements = static::randomElements($array, 1);
return $elements[0];
}
/**
* Returns a random key from a passed associative array
*
* @param array $array
* @return int|string|null
*/
public static function randomKey($array = array())
{
if (!$array) {
return null;
}
$keys = array_keys($array);
$key = $keys[mt_rand(0, count($keys) - 1)];
return $key;
}
/**
* Returns a shuffled version of the argument.
*
* This function accepts either an array, or a string.
*
* @example $faker->shuffle([1, 2, 3]); // [2, 1, 3]
* @example $faker->shuffle('hello, world'); // 'rlo,h eold!lw'
*
* @see shuffleArray()
* @see shuffleString()
*
* @param array|string $arg The set to shuffle
* @return array|string The shuffled set
*/
public static function shuffle($arg = '')
{
if (is_array($arg)) {
return static::shuffleArray($arg);
}
if (is_string($arg)) {
return static::shuffleString($arg);
}
throw new \InvalidArgumentException('shuffle() only supports strings or arrays');
}
/**
* Returns a shuffled version of the array.
*
* This function does not mutate the original array. It uses the
* FisherYates algorithm, which is unbiaised, together with a Mersenne
* twister random generator. This function is therefore more random than
* PHP's shuffle() function, and it is seedable.
*
* @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
*
* @example $faker->shuffleArray([1, 2, 3]); // [2, 1, 3]
*
* @param array $array The set to shuffle
* @return array The shuffled set
*/
public static function shuffleArray($array = array())
{
$shuffledArray = array();
$i = 0;
reset($array);
while (list($key, $value) = each($array)) {
if ($i == 0) {
$j = 0;
} else {
$j = mt_rand(0, $i);
}
if ($j == $i) {
$shuffledArray[]= $value;
} else {
$shuffledArray[]= $shuffledArray[$j];
$shuffledArray[$j] = $value;
}
$i++;
}
return $shuffledArray;
}
/**
* Returns a shuffled version of the string.
*
* This function does not mutate the original string. It uses the
* FisherYates algorithm, which is unbiaised, together with a Mersenne
* twister random generator. This function is therefore more random than
* PHP's shuffle() function, and it is seedable. Additionally, it is
* UTF8 safe if the mb extension is available.
*
* @link http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle
*
* @example $faker->shuffleString('hello, world'); // 'rlo,h eold!lw'
*
* @param string $string The set to shuffle
* @param string $encoding The string encoding (defaults to UTF-8)
* @return string The shuffled set
*/
public static function shuffleString($string = '', $encoding = 'UTF-8')
{
if (function_exists('mb_strlen')) {
// UTF8-safe str_split()
$array = array();
$strlen = mb_strlen($string, $encoding);
for ($i = 0; $i < $strlen; $i++) {
$array []= mb_substr($string, $i, 1, $encoding);
}
} else {
$array = str_split($string, 1);
}
return join('', static::shuffleArray($array));
}
/**
* Replaces all hash sign ('#') occurrences with a random number
* Replaces all percentage sign ('%') occurrences with a not null number
*
* @param string $string String that needs to bet parsed
* @return string
*/
public static function numerify($string = '###')
{
// instead of using randomDigit() several times, which is slow,
// count the number of hashes and generate once a large number
$toReplace = array();
for ($i = 0, $count = strlen($string); $i < $count; $i++) {
if ($string[$i] === '#') {
$toReplace []= $i;
}
}
if ($nbReplacements = count($toReplace)) {
$maxAtOnce = strlen((string) mt_getrandmax()) - 1;
$numbers = '';
$i = 0;
while ($i < $nbReplacements) {
$size = min($nbReplacements - $i, $maxAtOnce);
$numbers .= str_pad(static::randomNumber($size), $size, '0', STR_PAD_LEFT);
$i += $size;
}
for ($i = 0; $i < $nbReplacements; $i++) {
$string[$toReplace[$i]] = $numbers[$i];
}
}
$string = preg_replace_callback('/\%/u', 'static::randomDigitNotNull', $string);
return $string;
}
/**
* Replaces all question mark ('?') occurrences with a random letter
*
* @param string $string String that needs to bet parsed
* @return string
*/
public static function lexify($string = '????')
{
return preg_replace_callback('/\?/u', 'static::randomLetter', $string);
}
/**
* Replaces hash signs and question marks with random numbers and letters
*
* @param string $string String that needs to bet parsed
* @return string
*/
public static function bothify($string = '## ??')
{
return static::lexify(static::numerify($string));
}
/**
* Replaces * signs with random numbers and letters and special characters
*
* @example $faker->asciify(''********'); // "s5'G!uC3"
*
* @param string $string String that needs to bet parsed
* @return string
*/
public static function asciify($string = '****')
{
return preg_replace_callback('/\*/u', 'static::randomAscii', $string);
}
/**
* Transforms a basic regular expression into a random string satisfying the expression.
*
* @example $faker->regexify('[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'); // sm0@y8k96a.ej
*
* Regex delimiters '/.../' and begin/end markers '^...$' are ignored.
*
* Only supports a small subset of the regex syntax. For instance,
* unicode, negated classes, unbouned ranges, subpatterns, back references,
* assertions, recursive patterns, and comments are not supported. Escaping
* support is extremely fragile.
*
* This method is also VERY slow. Use it only when no other formatter
* can generate the fake data you want. For instance, prefer calling
* `$faker->email` rather than `regexify` with the previous regular
* expression.
*
* Also note than `bothify` can probably do most of what this method does,
* but much faster. For instance, for a dummy email generation, try
* `$faker->bothify('?????????@???.???')`.
*
* @see https://github.com/icomefromthenet/ReverseRegex for a more robust implementation
*
* @param string $regex A regular expression (delimiters are optional)
* @return string
*/
public static function regexify($regex = '')
{
// ditch the anchors
$regex = preg_replace('/^\/?\^?/', '', $regex);
$regex = preg_replace('/\$?\/?$/', '', $regex);
// All {2} become {2,2}
$regex = preg_replace('/\{(\d+)\}/', '{\1,\1}', $regex);
// Single-letter quantifiers (?, *, +) become bracket quantifiers ({0,1}, {0,rand}, {1, rand})
$regex = preg_replace('/(?<!\\\)\?/', '{0,1}', $regex);
$regex = preg_replace('/(?<!\\\)\*/', '{0,' . static::randomDigitNotNull() . '}', $regex);
$regex = preg_replace('/(?<!\\\)\+/', '{1,' . static::randomDigitNotNull() . '}', $regex);
// [12]{1,2} becomes [12] or [12][12]
$regex = preg_replace_callback('/(\[[^\]]+\])\{(\d+),(\d+)\}/', function ($matches) {
return str_repeat($matches[1], Base::randomElement(range($matches[2], $matches[3])));
}, $regex);
// (12|34){1,2} becomes (12|34) or (12|34)(12|34)
$regex = preg_replace_callback('/(\([^\)]+\))\{(\d+),(\d+)\}/', function ($matches) {
return str_repeat($matches[1], Base::randomElement(range($matches[2], $matches[3])));
}, $regex);
// A{1,2} becomes A or AA or \d{3} becomes \d\d\d
$regex = preg_replace_callback('/(\\\?.)\{(\d+),(\d+)\}/', function ($matches) {
return str_repeat($matches[1], Base::randomElement(range($matches[2], $matches[3])));
}, $regex);
// (this|that) becomes 'this' or 'that'
$regex = preg_replace_callback('/\((.*?)\)/', function ($matches) {
return Base::randomElement(explode('|', str_replace(array('(', ')'), '', $matches[1])));
}, $regex);
// All A-F inside of [] become ABCDEF
$regex = preg_replace_callback('/\[([^\]]+)\]/', function ($matches) {
return '[' . preg_replace_callback('/(\w|\d)\-(\w|\d)/', function ($range) {
return join(range($range[1], $range[2]), '');
}, $matches[1]) . ']';
}, $regex);
// All [ABC] become B (or A or C)
$regex = preg_replace_callback('/\[([^\]]+)\]/', function ($matches) {
return Base::randomElement(str_split($matches[1]));
}, $regex);
// replace \d with number and \w with letter and . with ascii
$regex = preg_replace_callback('/\\\w/', 'static::randomLetter', $regex);
$regex = preg_replace_callback('/\\\d/', 'static::randomDigit', $regex);
$regex = preg_replace_callback('/(?<!\\\)\./', 'static::randomAscii', $regex);
// remove remaining backslashes
$regex = str_replace('\\', '', $regex);
// phew
return $regex;
}
/**
* Converts string to lowercase.
* Uses mb_string extension if available.
*
* @param string $string String that should be converted to lowercase
* @return string
*/
public static function toLower($string = '')
{
return extension_loaded('mbstring') ? mb_strtolower($string, 'UTF-8') : strtolower($string);
}
/**
* Converts string to uppercase.
* Uses mb_string extension if available.
*
* @param string $string String that should be converted to uppercase
* @return string
*/
public static function toUpper($string = '')
{
return extension_loaded('mbstring') ? mb_strtoupper($string, 'UTF-8') : strtoupper($string);
}
/**
* Chainable method for making any formatter optional.
*
* @param float $weight Set the probability of receiving a null value.
* "0" will always return null, "1" will always return the generator.
* @return Generator|DefaultGenerator
*/
public function optional($weight = 0.5, $default = null)
{
if (mt_rand() / mt_getrandmax() <= $weight) {
return $this->generator;
}
return new DefaultGenerator($default);
}
/**
* Chainable method for making any formatter unique.
*
* <code>
* // will never return twice the same value
* $faker->unique()->randomElement(array(1, 2, 3));
* </code>
*
* @param boolean $reset If set to true, resets the list of existing values
* @param integer $maxRetries Maximum number of retries to find a unique value,
* After which an OverflowException is thrown.
* @throws \OverflowException When no unique value can be found by iterating $maxRetries times
*
* @return UniqueGenerator A proxy class returning only non-existing values
*/
public function unique($reset = false, $maxRetries = 10000)
{
if ($reset || !$this->unique) {
$this->unique = new UniqueGenerator($this->generator, $maxRetries);
}
return $this->unique;
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Faker\Provider;
class Biased extends \Faker\Provider\Base
{
/**
* Returns a biased integer between $min and $max (both inclusive).
* The distribution depends on $function.
*
* The algorithm creates two doubles, x ∈ [0, 1], y ∈ [0, 1) and checks whether the
* return value of $function for x is greater than or equal to y. If this is
* the case the number is accepted and x is mapped to the appropriate integer
* between $min and $max. Otherwise two new doubles are created until the pair
* is accepted.
*
* @param integer $min Minimum value of the generated integers.
* @param integer $max Maximum value of the generated integers.
* @param callable $function A function mapping x ∈ [0, 1] onto a double ∈ [0, 1]
* @return integer An integer between $min and $max.
*/
public function biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt')
{
do {
$x = mt_rand() / mt_getrandmax();
$y = mt_rand() / (mt_getrandmax() + 1);
} while (call_user_func($function, $x) < $y);
return floor($x * ($max - $min + 1) + $min);
}
/**
* 'unbiased' creates an unbiased distribution by giving
* each value the same value of one.
*
* @return integer
*/
protected static function unbiased($x)
{
return 1;
}
/**
* 'linearLow' favors lower numbers. The probability decreases
* in a linear fashion.
*
* @return integer
*/
protected static function linearLow($x)
{
return 1 - $x;
}
/**
* 'linearHigh' favors higher numbers. The probability increases
* in a linear fashion.
*
* @return integer
*/
protected static function linearHigh($x)
{
return $x;
}
}

View File

@@ -0,0 +1,108 @@
<?php
namespace Faker\Provider;
/**
* @author lsv
*/
class Color extends Base
{
protected static $safeColorNames = array(
'black', 'maroon', 'green', 'navy', 'olive',
'purple', 'teal', 'lime', 'blue', 'silver',
'gray', 'yellow', 'fuchsia', 'aqua', 'white'
);
protected static $allColorNames = array(
'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine',
'Azure', 'Beige', 'Bisque', 'Black', 'BlanchedAlmond',
'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue',
'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue',
'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan',
'DarkGoldenRod', 'DarkGray', 'DarkGreen', 'DarkKhaki',
'DarkMagenta', 'DarkOliveGreen', 'Darkorange', 'DarkOrchid',
'DarkRed', 'DarkSalmon', 'DarkSeaGreen', 'DarkSlateBlue',
'DarkSlateGray', 'DarkTurquoise', 'DarkViolet', 'DeepPink',
'DeepSkyBlue', 'DimGray', 'DimGrey', 'DodgerBlue', 'FireBrick',
'FloralWhite', 'ForestGreen', 'Fuchsia', 'Gainsboro', 'GhostWhite',
'Gold', 'GoldenRod', 'Gray', 'Green', 'GreenYellow', 'HoneyDew',
'HotPink', 'IndianRed ', 'Indigo ', 'Ivory', 'Khaki', 'Lavender',
'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral',
'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGreen', 'LightPink',
'LightSalmon', 'LightSeaGreen', 'LightSkyBlue', 'LightSlateGray', 'LightSteelBlue',
'LightYellow', 'Lime', 'LimeGreen', 'Linen', 'Magenta', 'Maroon', 'MediumAquaMarine',
'MediumBlue', 'MediumOrchid', 'MediumPurple', 'MediumSeaGreen', 'MediumSlateBlue',
'MediumSpringGreen', 'MediumTurquoise', 'MediumVioletRed', 'MidnightBlue',
'MintCream', 'MistyRose', 'Moccasin', 'NavajoWhite', 'Navy', 'OldLace', 'Olive',
'OliveDrab', 'Orange', 'OrangeRed', 'Orchid', 'PaleGoldenRod', 'PaleGreen',
'PaleTurquoise', 'PaleVioletRed', 'PapayaWhip', 'PeachPuff', 'Peru', 'Pink', 'Plum',
'PowderBlue', 'Purple', 'Red', 'RosyBrown', 'RoyalBlue', 'SaddleBrown', 'Salmon',
'SandyBrown', 'SeaGreen', 'SeaShell', 'Sienna', 'Silver', 'SkyBlue', 'SlateBlue',
'SlateGray', 'Snow', 'SpringGreen', 'SteelBlue', 'Tan', 'Teal', 'Thistle', 'Tomato',
'Turquoise', 'Violet', 'Wheat', 'White', 'WhiteSmoke', 'Yellow', 'YellowGreen'
);
/**
* @example '#fa3cc2'
*/
public static function hexColor()
{
return '#' . str_pad(dechex(mt_rand(1, 16777215)), 6, '0', STR_PAD_LEFT);
}
/**
* @example '#ff0044'
*/
public static function safeHexColor()
{
$color = str_pad(dechex(mt_rand(0, 255)), 3, '0', STR_PAD_LEFT);
return '#' . $color[0] . $color[0] . $color[1] . $color[1] . $color[2] . $color[2];
}
/**
* @example 'array(0,255,122)'
*/
public static function rgbColorAsArray()
{
$color = static::hexColor();
return array(
hexdec(substr($color, 1, 2)),
hexdec(substr($color, 3, 2)),
hexdec(substr($color, 5, 2))
);
}
/**
* @example '0,255,122'
*/
public static function rgbColor()
{
return implode(',', static::rgbColorAsArray());
}
/**
* @example 'rgb(0,255,122)'
*/
public static function rgbCssColor()
{
return 'rgb(' . static::rgbColor() . ')';
}
/**
* @example 'blue'
*/
public static function safeColorName()
{
return static::randomElement(static::$safeColorNames);
}
/**
* @example 'NavajoWhite'
*/
public static function colorName()
{
return static::randomElement(static::$allColorNames);
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace Faker\Provider;
class Company extends \Faker\Provider\Base
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
);
protected static $companySuffix = array('Ltd');
/**
* @example 'Acme Ltd'
*/
public function company()
{
$format = static::randomElement(static::$formats);
return $this->generator->parse($format);
}
/**
* @example 'Ltd'
*/
public static function companySuffix()
{
return static::randomElement(static::$companySuffix);
}
}

View File

@@ -0,0 +1,240 @@
<?php
namespace Faker\Provider;
class DateTime extends \Faker\Provider\Base
{
protected static $century = array('I','II','III','IV','V','VI','VII','VIII','IX','X','XI','XII','XIII','XIV','XV','XVI','XVII','XVIII','XIX','XX','XXI');
protected static function getMaxTimestamp($max = 'now')
{
if (is_numeric($max)) {
return (int) $max;
}
if ($max instanceof \DateTime) {
return $max->getTimestamp();
}
return strtotime(empty($max) ? 'now' : $max);
}
/**
* Get a timestamp between January 1, 1970 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return int
*
* @example 1061306726
*/
public static function unixTime($max = 'now')
{
return mt_rand(0, static::getMaxTimestamp($max));
}
/**
* Get a datetime object for a date between January 1, 1970 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('2005-08-16 20:39:21')
* @return \DateTime
*/
public static function dateTime($max = 'now')
{
return new \DateTime('@' . static::unixTime($max));
}
/**
* Get a datetime object for a date between January 1, 001 and now
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('1265-03-22 21:15:52')
* @return \DateTime
*/
public static function dateTimeAD($max = 'now')
{
return new \DateTime('@' . mt_rand(-62135597361, static::getMaxTimestamp($max)));
}
/**
* get a date string formatted with ISO8601
*
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '2003-10-21T16:05:52+0000'
*/
public static function iso8601($max = 'now')
{
return static::date(\DateTime::ISO8601, $max);
}
/**
* Get a date string between January 1, 1970 and now
*
* @param string $format
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '2008-11-27'
*/
public static function date($format = 'Y-m-d', $max = 'now')
{
return static::dateTime($max)->format($format);
}
/**
* Get a time string (24h format by default)
*
* @param string $format
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '15:02:34'
*/
public static function time($format = 'H:i:s', $max = 'now')
{
return static::dateTime($max)->format($format);
}
/**
* Get a DateTime object based on a random date between two given dates.
* Accepts date strings that can be recognized by strtotime().
*
* @param string $startDate Defaults to 30 years ago
* @param string $endDate Defaults to "now"
* @example DateTime('1999-02-02 11:42:52')
* @return \DateTime
*/
public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now')
{
$startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate);
$endTimestamp = static::getMaxTimestamp($endDate);
if ($startTimestamp > $endTimestamp) {
throw new \InvalidArgumentException('Start date must be anterior to end date.');
}
$timestamp = mt_rand($startTimestamp, $endTimestamp);
$ts = new \DateTime('@' . $timestamp);
$ts->setTimezone(new \DateTimeZone(date_default_timezone_get()));
return $ts;
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('1964-04-04 11:02:02')
* @return \DateTime
*/
public static function dateTimeThisCentury($max = 'now')
{
return static::dateTimeBetween('-100 year', $max);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('2010-03-10 05:18:58')
* @return \DateTime
*/
public static function dateTimeThisDecade($max = 'now')
{
return static::dateTimeBetween('-10 year', $max);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('2011-09-19 09:24:37')
* @return \DateTime
*/
public static function dateTimeThisYear($max = 'now')
{
return static::dateTimeBetween('-1 year', $max);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @example DateTime('2011-10-05 12:51:46')
* @return \DateTime
*/
public static function dateTimeThisMonth($max = 'now')
{
return static::dateTimeBetween('-1 month', $max);
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example 'am'
*/
public static function amPm($max = 'now')
{
return static::dateTime($max)->format('a');
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '22'
*/
public static function dayOfMonth($max = 'now')
{
return static::dateTime($max)->format('d');
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example 'Tuesday'
*/
public static function dayOfWeek($max = 'now')
{
return static::dateTime($max)->format('l');
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '7'
*/
public static function month($max = 'now')
{
return static::dateTime($max)->format('m');
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example 'September'
*/
public static function monthName($max = 'now')
{
return static::dateTime($max)->format('F');
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return int
* @example 1673
*/
public static function year($max = 'now')
{
return static::dateTime($max)->format('Y');
}
/**
* @return string
* @example 'XVII'
*/
public static function century()
{
return static::randomElement(static::$century);
}
/**
* @return string
* @example 'Europe/Paris'
*/
public static function timezone()
{
return static::randomElement(\DateTimeZone::listIdentifiers());
}
}

View File

@@ -0,0 +1,606 @@
<?php
namespace Faker\Provider;
class File extends \Faker\Provider\Base
{
/**
* MIME types from the apache.org file. Some types are truncated.
*
* @var array Map of MIME types => file extension(s)
* @link http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
*/
protected static $mimeTypes = array(
'application/atom+xml' => 'atom',
'application/ecmascript' => 'ecma',
'application/emma+xml' => 'emma',
'application/epub+zip' => 'epub',
'application/java-archive' => 'jar',
'application/java-vm' => 'class',
'application/javascript' => 'js',
'application/json' => 'json',
'application/jsonml+json' => 'jsonml',
'application/lost+xml' => 'lostxml',
'application/mathml+xml' => 'mathml',
'application/mets+xml' => 'mets',
'application/mods+xml' => 'mods',
'application/mp4' => 'mp4s',
'application/msword' => array('doc', 'dot'),
'application/octet-stream' => array(
'bin',
'dms',
'lrf',
'mar',
'so',
'dist',
'distz',
'pkg',
'bpk',
'dump',
'elc',
'deploy'
),
'application/ogg' => 'ogx',
'application/omdoc+xml' => 'omdoc',
'application/pdf' => 'pdf',
'application/pgp-encrypted' => 'pgp',
'application/pgp-signature' => array('asc', 'sig'),
'application/pkix-pkipath' => 'pkipath',
'application/pkixcmp' => 'pki',
'application/pls+xml' => 'pls',
'application/postscript' => array('ai', 'eps', 'ps'),
'application/pskc+xml' => 'pskcxml',
'application/rdf+xml' => 'rdf',
'application/reginfo+xml' => 'rif',
'application/rss+xml' => 'rss',
'application/rtf' => 'rtf',
'application/sbml+xml' => 'sbml',
'application/vnd.adobe.air-application-installer-package+zip' => 'air',
'application/vnd.adobe.xdp+xml' => 'xdp',
'application/vnd.adobe.xfdf' => 'xfdf',
'application/vnd.ahead.space' => 'ahead',
'application/vnd.dart' => 'dart',
'application/vnd.data-vision.rdz' => 'rdz',
'application/vnd.dece.data' => array('uvf', 'uvvf', 'uvd', 'uvvd'),
'application/vnd.dece.ttml+xml' => array('uvt', 'uvvt'),
'application/vnd.dece.unspecified' => array('uvx', 'uvvx'),
'application/vnd.dece.zip' => array('uvz', 'uvvz'),
'application/vnd.denovo.fcselayout-link' => 'fe_launch',
'application/vnd.dna' => 'dna',
'application/vnd.dolby.mlp' => 'mlp',
'application/vnd.dpgraph' => 'dpg',
'application/vnd.dreamfactory' => 'dfac',
'application/vnd.ds-keypoint' => 'kpxx',
'application/vnd.dvb.ait' => 'ait',
'application/vnd.dvb.service' => 'svc',
'application/vnd.dynageo' => 'geo',
'application/vnd.ecowin.chart' => 'mag',
'application/vnd.enliven' => 'nml',
'application/vnd.epson.esf' => 'esf',
'application/vnd.epson.msf' => 'msf',
'application/vnd.epson.quickanime' => 'qam',
'application/vnd.epson.salt' => 'slt',
'application/vnd.epson.ssf' => 'ssf',
'application/vnd.ezpix-album' => 'ez2',
'application/vnd.ezpix-package' => 'ez3',
'application/vnd.fdf' => 'fdf',
'application/vnd.fdsn.mseed' => 'mseed',
'application/vnd.fdsn.seed' => array('seed', 'dataless'),
'application/vnd.flographit' => 'gph',
'application/vnd.fluxtime.clip' => 'ftc',
'application/vnd.hal+xml' => 'hal',
'application/vnd.hydrostatix.sof-data' => 'sfd-hdstx',
'application/vnd.ibm.minipay' => 'mpy',
'application/vnd.ibm.secure-container' => 'sc',
'application/vnd.iccprofile' => array('icc', 'icm'),
'application/vnd.igloader' => 'igl',
'application/vnd.immervision-ivp' => 'ivp',
'application/vnd.kde.karbon' => 'karbon',
'application/vnd.kde.kchart' => 'chrt',
'application/vnd.kde.kformula' => 'kfo',
'application/vnd.kde.kivio' => 'flw',
'application/vnd.kde.kontour' => 'kon',
'application/vnd.kde.kpresenter' => array('kpr', 'kpt'),
'application/vnd.kde.kspread' => 'ksp',
'application/vnd.kde.kword' => array('kwd', 'kwt'),
'application/vnd.kenameaapp' => 'htke',
'application/vnd.kidspiration' => 'kia',
'application/vnd.kinar' => array('kne', 'knp'),
'application/vnd.koan' => array('skp', 'skd', 'skt', 'skm'),
'application/vnd.kodak-descriptor' => 'sse',
'application/vnd.las.las+xml' => 'lasxml',
'application/vnd.llamagraphics.life-balance.desktop' => 'lbd',
'application/vnd.llamagraphics.life-balance.exchange+xml' => 'lbe',
'application/vnd.lotus-1-2-3' => '123',
'application/vnd.lotus-approach' => 'apr',
'application/vnd.lotus-freelance' => 'pre',
'application/vnd.lotus-notes' => 'nsf',
'application/vnd.lotus-organizer' => 'org',
'application/vnd.lotus-screencam' => 'scm',
'application/vnd.mozilla.xul+xml' => 'xul',
'application/vnd.ms-artgalry' => 'cil',
'application/vnd.ms-cab-compressed' => 'cab',
'application/vnd.ms-excel' => array(
'xls',
'xlm',
'xla',
'xlc',
'xlt',
'xlw'
),
'application/vnd.ms-excel.addin.macroenabled.12' => 'xlam',
'application/vnd.ms-excel.sheet.binary.macroenabled.12' => 'xlsb',
'application/vnd.ms-excel.sheet.macroenabled.12' => 'xlsm',
'application/vnd.ms-excel.template.macroenabled.12' => 'xltm',
'application/vnd.ms-fontobject' => 'eot',
'application/vnd.ms-htmlhelp' => 'chm',
'application/vnd.ms-ims' => 'ims',
'application/vnd.ms-lrm' => 'lrm',
'application/vnd.ms-officetheme' => 'thmx',
'application/vnd.ms-pki.seccat' => 'cat',
'application/vnd.ms-pki.stl' => 'stl',
'application/vnd.ms-powerpoint' => array('ppt', 'pps', 'pot'),
'application/vnd.ms-powerpoint.addin.macroenabled.12' => 'ppam',
'application/vnd.ms-powerpoint.presentation.macroenabled.12' => 'pptm',
'application/vnd.ms-powerpoint.slide.macroenabled.12' => 'sldm',
'application/vnd.ms-powerpoint.slideshow.macroenabled.12' => 'ppsm',
'application/vnd.ms-powerpoint.template.macroenabled.12' => 'potm',
'application/vnd.ms-project' => array('mpp', 'mpt'),
'application/vnd.ms-word.document.macroenabled.12' => 'docm',
'application/vnd.ms-word.template.macroenabled.12' => 'dotm',
'application/vnd.ms-works' => array('wps', 'wks', 'wcm', 'wdb'),
'application/vnd.ms-wpl' => 'wpl',
'application/vnd.ms-xpsdocument' => 'xps',
'application/vnd.mseq' => 'mseq',
'application/vnd.musician' => 'mus',
'application/vnd.oasis.opendocument.chart' => 'odc',
'application/vnd.oasis.opendocument.chart-template' => 'otc',
'application/vnd.oasis.opendocument.database' => 'odb',
'application/vnd.oasis.opendocument.formula' => 'odf',
'application/vnd.oasis.opendocument.formula-template' => 'odft',
'application/vnd.oasis.opendocument.graphics' => 'odg',
'application/vnd.oasis.opendocument.graphics-template' => 'otg',
'application/vnd.oasis.opendocument.image' => 'odi',
'application/vnd.oasis.opendocument.image-template' => 'oti',
'application/vnd.oasis.opendocument.presentation' => 'odp',
'application/vnd.oasis.opendocument.presentation-template' => 'otp',
'application/vnd.oasis.opendocument.spreadsheet' => 'ods',
'application/vnd.oasis.opendocument.spreadsheet-template' => 'ots',
'application/vnd.oasis.opendocument.text' => 'odt',
'application/vnd.oasis.opendocument.text-master' => 'odm',
'application/vnd.oasis.opendocument.text-template' => 'ott',
'application/vnd.oasis.opendocument.text-web' => 'oth',
'application/vnd.olpc-sugar' => 'xo',
'application/vnd.oma.dd2+xml' => 'dd2',
'application/vnd.openofficeorg.extension' => 'oxt',
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => 'pptx',
'application/vnd.openxmlformats-officedocument.presentationml.slide' => 'sldx',
'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => 'ppsx',
'application/vnd.openxmlformats-officedocument.presentationml.template' => 'potx',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'xlsx',
'application/vnd.openxmlformats-officedocument.spreadsheetml.template' => 'xltx',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => 'docx',
'application/vnd.openxmlformats-officedocument.wordprocessingml.template' => 'dotx',
'application/vnd.pvi.ptid1' => 'ptid',
'application/vnd.quark.quarkxpress' => array(
'qxd',
'qxt',
'qwd',
'qwt',
'qxl',
'qxb'
),
'application/vnd.realvnc.bed' => 'bed',
'application/vnd.recordare.musicxml' => 'mxl',
'application/vnd.recordare.musicxml+xml' => 'musicxml',
'application/vnd.rig.cryptonote' => 'cryptonote',
'application/vnd.rim.cod' => 'cod',
'application/vnd.rn-realmedia' => 'rm',
'application/vnd.rn-realmedia-vbr' => 'rmvb',
'application/vnd.route66.link66+xml' => 'link66',
'application/vnd.sailingtracker.track' => 'st',
'application/vnd.seemail' => 'see',
'application/vnd.sema' => 'sema',
'application/vnd.semd' => 'semd',
'application/vnd.semf' => 'semf',
'application/vnd.shana.informed.formdata' => 'ifm',
'application/vnd.shana.informed.formtemplate' => 'itp',
'application/vnd.shana.informed.interchange' => 'iif',
'application/vnd.shana.informed.package' => 'ipk',
'application/vnd.simtech-mindmapper' => array('twd', 'twds'),
'application/vnd.smaf' => 'mmf',
'application/vnd.stepmania.stepchart' => 'sm',
'application/vnd.sun.xml.calc' => 'sxc',
'application/vnd.sun.xml.calc.template' => 'stc',
'application/vnd.sun.xml.draw' => 'sxd',
'application/vnd.sun.xml.draw.template' => 'std',
'application/vnd.sun.xml.impress' => 'sxi',
'application/vnd.sun.xml.impress.template' => 'sti',
'application/vnd.sun.xml.math' => 'sxm',
'application/vnd.sun.xml.writer' => 'sxw',
'application/vnd.sun.xml.writer.global' => 'sxg',
'application/vnd.sun.xml.writer.template' => 'stw',
'application/vnd.sus-calendar' => array('sus', 'susp'),
'application/vnd.svd' => 'svd',
'application/vnd.symbian.install' => array('sis', 'sisx'),
'application/vnd.syncml+xml' => 'xsm',
'application/vnd.syncml.dm+wbxml' => 'bdm',
'application/vnd.syncml.dm+xml' => 'xdm',
'application/vnd.tao.intent-module-archive' => 'tao',
'application/vnd.tcpdump.pcap' => array('pcap', 'cap', 'dmp'),
'application/vnd.tmobile-livetv' => 'tmo',
'application/vnd.trid.tpt' => 'tpt',
'application/vnd.triscape.mxs' => 'mxs',
'application/vnd.trueapp' => 'tra',
'application/vnd.ufdl' => array('ufd', 'ufdl'),
'application/vnd.uiq.theme' => 'utz',
'application/vnd.umajin' => 'umj',
'application/vnd.unity' => 'unityweb',
'application/vnd.uoml+xml' => 'uoml',
'application/vnd.vcx' => 'vcx',
'application/vnd.visio' => array('vsd', 'vst', 'vss', 'vsw'),
'application/vnd.visionary' => 'vis',
'application/vnd.vsf' => 'vsf',
'application/vnd.wap.wbxml' => 'wbxml',
'application/vnd.wap.wmlc' => 'wmlc',
'application/vnd.wap.wmlscriptc' => 'wmlsc',
'application/vnd.webturbo' => 'wtb',
'application/vnd.wolfram.player' => 'nbp',
'application/vnd.wordperfect' => 'wpd',
'application/vnd.wqd' => 'wqd',
'application/vnd.wt.stf' => 'stf',
'application/vnd.xara' => 'xar',
'application/vnd.xfdl' => 'xfdl',
'application/voicexml+xml' => 'vxml',
'application/widget' => 'wgt',
'application/winhlp' => 'hlp',
'application/wsdl+xml' => 'wsdl',
'application/wspolicy+xml' => 'wspolicy',
'application/x-7z-compressed' => '7z',
'application/x-bittorrent' => 'torrent',
'application/x-blorb' => array('blb', 'blorb'),
'application/x-bzip' => 'bz',
'application/x-cdlink' => 'vcd',
'application/x-cfs-compressed' => 'cfs',
'application/x-chat' => 'chat',
'application/x-chess-pgn' => 'pgn',
'application/x-conference' => 'nsc',
'application/x-cpio' => 'cpio',
'application/x-csh' => 'csh',
'application/x-debian-package' => array('deb', 'udeb'),
'application/x-dgc-compressed' => 'dgc',
'application/x-director' => array(
'dir',
'dcr',
'dxr',
'cst',
'cct',
'cxt',
'w3d',
'fgd',
'swa'
),
'application/x-font-ttf' => array('ttf', 'ttc'),
'application/x-font-type1' => array('pfa', 'pfb', 'pfm', 'afm'),
'application/x-font-woff' => 'woff',
'application/x-freearc' => 'arc',
'application/x-futuresplash' => 'spl',
'application/x-gca-compressed' => 'gca',
'application/x-glulx' => 'ulx',
'application/x-gnumeric' => 'gnumeric',
'application/x-gramps-xml' => 'gramps',
'application/x-gtar' => 'gtar',
'application/x-hdf' => 'hdf',
'application/x-install-instructions' => 'install',
'application/x-iso9660-image' => 'iso',
'application/x-java-jnlp-file' => 'jnlp',
'application/x-latex' => 'latex',
'application/x-lzh-compressed' => array('lzh', 'lha'),
'application/x-mie' => 'mie',
'application/x-mobipocket-ebook' => array('prc', 'mobi'),
'application/x-ms-application' => 'application',
'application/x-ms-shortcut' => 'lnk',
'application/x-ms-wmd' => 'wmd',
'application/x-ms-wmz' => 'wmz',
'application/x-ms-xbap' => 'xbap',
'application/x-msaccess' => 'mdb',
'application/x-msbinder' => 'obd',
'application/x-mscardfile' => 'crd',
'application/x-msclip' => 'clp',
'application/x-msdownload' => array('exe', 'dll', 'com', 'bat', 'msi'),
'application/x-msmediaview' => array(
'mvb',
'm13',
'm14'
),
'application/x-msmetafile' => array('wmf', 'wmz', 'emf', 'emz'),
'application/x-rar-compressed' => 'rar',
'application/x-research-info-systems' => 'ris',
'application/x-sh' => 'sh',
'application/x-shar' => 'shar',
'application/x-shockwave-flash' => 'swf',
'application/x-silverlight-app' => 'xap',
'application/x-sql' => 'sql',
'application/x-stuffit' => 'sit',
'application/x-stuffitx' => 'sitx',
'application/x-subrip' => 'srt',
'application/x-sv4cpio' => 'sv4cpio',
'application/x-sv4crc' => 'sv4crc',
'application/x-t3vm-image' => 't3',
'application/x-tads' => 'gam',
'application/x-tar' => 'tar',
'application/x-tcl' => 'tcl',
'application/x-tex' => 'tex',
'application/x-tex-tfm' => 'tfm',
'application/x-texinfo' => array('texinfo', 'texi'),
'application/x-tgif' => 'obj',
'application/x-ustar' => 'ustar',
'application/x-wais-source' => 'src',
'application/x-x509-ca-cert' => array('der', 'crt'),
'application/x-xfig' => 'fig',
'application/x-xliff+xml' => 'xlf',
'application/x-xpinstall' => 'xpi',
'application/x-xz' => 'xz',
'application/x-zmachine' => 'z1',
'application/xaml+xml' => 'xaml',
'application/xcap-diff+xml' => 'xdf',
'application/xenc+xml' => 'xenc',
'application/xhtml+xml' => array('xhtml', 'xht'),
'application/xml' => array('xml', 'xsl'),
'application/xml-dtd' => 'dtd',
'application/xop+xml' => 'xop',
'application/xproc+xml' => 'xpl',
'application/xslt+xml' => 'xslt',
'application/xspf+xml' => 'xspf',
'application/xv+xml' => array('mxml', 'xhvml', 'xvml', 'xvm'),
'application/yang' => 'yang',
'application/yin+xml' => 'yin',
'application/zip' => 'zip',
'audio/adpcm' => 'adp',
'audio/basic' => array('au', 'snd'),
'audio/midi' => array('mid', 'midi', 'kar', 'rmi'),
'audio/mp4' => 'mp4a',
'audio/mpeg' => array(
'mpga',
'mp2',
'mp2a',
'mp3',
'm2a',
'm3a'
),
'audio/ogg' => array('oga', 'ogg', 'spx'),
'audio/vnd.dece.audio' => array('uva', 'uvva'),
'audio/vnd.rip' => 'rip',
'audio/webm' => 'weba',
'audio/x-aac' => 'aac',
'audio/x-aiff' => array('aif', 'aiff', 'aifc'),
'audio/x-caf' => 'caf',
'audio/x-flac' => 'flac',
'audio/x-matroska' => 'mka',
'audio/x-mpegurl' => 'm3u',
'audio/x-ms-wax' => 'wax',
'audio/x-ms-wma' => 'wma',
'audio/x-pn-realaudio' => array('ram', 'ra'),
'audio/x-pn-realaudio-plugin' => 'rmp',
'audio/x-wav' => 'wav',
'audio/xm' => 'xm',
'image/bmp' => 'bmp',
'image/cgm' => 'cgm',
'image/g3fax' => 'g3',
'image/gif' => 'gif',
'image/ief' => 'ief',
'image/jpeg' => array('jpeg', 'jpg', 'jpe'),
'image/ktx' => 'ktx',
'image/png' => 'png',
'image/prs.btif' => 'btif',
'image/sgi' => 'sgi',
'image/svg+xml' => array('svg', 'svgz'),
'image/tiff' => array('tiff', 'tif'),
'image/vnd.adobe.photoshop' => 'psd',
'image/vnd.dece.graphic' => array('uvi', 'uvvi', 'uvg', 'uvvg'),
'image/vnd.dvb.subtitle' => 'sub',
'image/vnd.djvu' => array('djvu', 'djv'),
'image/vnd.dwg' => 'dwg',
'image/vnd.dxf' => 'dxf',
'image/vnd.fastbidsheet' => 'fbs',
'image/vnd.fpx' => 'fpx',
'image/vnd.fst' => 'fst',
'image/vnd.fujixerox.edmics-mmr' => 'mmr',
'image/vnd.fujixerox.edmics-rlc' => 'rlc',
'image/vnd.ms-modi' => 'mdi',
'image/vnd.ms-photo' => 'wdp',
'image/vnd.net-fpx' => 'npx',
'image/vnd.wap.wbmp' => 'wbmp',
'image/vnd.xiff' => 'xif',
'image/webp' => 'webp',
'image/x-3ds' => '3ds',
'image/x-cmu-raster' => 'ras',
'image/x-cmx' => 'cmx',
'image/x-freehand' => array('fh', 'fhc', 'fh4', 'fh5', 'fh7'),
'image/x-icon' => 'ico',
'image/x-mrsid-image' => 'sid',
'image/x-pcx' => 'pcx',
'image/x-pict' => array('pic', 'pct'),
'image/x-portable-anymap' => 'pnm',
'image/x-portable-bitmap' => 'pbm',
'image/x-portable-graymap' => 'pgm',
'image/x-portable-pixmap' => 'ppm',
'image/x-rgb' => 'rgb',
'image/x-tga' => 'tga',
'image/x-xbitmap' => 'xbm',
'image/x-xpixmap' => 'xpm',
'image/x-xwindowdump' => 'xwd',
'message/rfc822' => array('eml', 'mime'),
'model/iges' => array('igs', 'iges'),
'model/mesh' => array('msh', 'mesh', 'silo'),
'model/vnd.collada+xml' => 'dae',
'model/vnd.dwf' => 'dwf',
'model/vnd.gdl' => 'gdl',
'model/vnd.gtw' => 'gtw',
'model/vnd.mts' => 'mts',
'model/vnd.vtu' => 'vtu',
'model/vrml' => array('wrl', 'vrml'),
'model/x3d+binary' => 'x3db',
'model/x3d+vrml' => 'x3dv',
'model/x3d+xml' => 'x3d',
'text/cache-manifest' => 'appcache',
'text/calendar' => array('ics', 'ifb'),
'text/css' => 'css',
'text/csv' => 'csv',
'text/html' => array('html', 'htm'),
'text/n3' => 'n3',
'text/plain' => array(
'txt',
'text',
'conf',
'def',
'list',
'log',
'in'
),
'text/prs.lines.tag' => 'dsc',
'text/richtext' => 'rtx',
'text/sgml' => array('sgml', 'sgm'),
'text/tab-separated-values' => 'tsv',
'text/troff' => array(
't',
'tr',
'roff',
'man',
'me',
'ms'
),
'text/turtle' => 'ttl',
'text/uri-list' => array('uri', 'uris', 'urls'),
'text/vcard' => 'vcard',
'text/vnd.curl' => 'curl',
'text/vnd.curl.dcurl' => 'dcurl',
'text/vnd.curl.scurl' => 'scurl',
'text/vnd.curl.mcurl' => 'mcurl',
'text/vnd.dvb.subtitle' => 'sub',
'text/vnd.fly' => 'fly',
'text/vnd.fmi.flexstor' => 'flx',
'text/vnd.graphviz' => 'gv',
'text/vnd.in3d.3dml' => '3dml',
'text/vnd.in3d.spot' => 'spot',
'text/vnd.sun.j2me.app-descriptor' => 'jad',
'text/vnd.wap.wml' => 'wml',
'text/vnd.wap.wmlscript' => 'wmls',
'text/x-asm' => array('s', 'asm'),
'text/x-fortran' => array('f', 'for', 'f77', 'f90'),
'text/x-java-source' => 'java',
'text/x-opml' => 'opml',
'text/x-pascal' => array('p', 'pas'),
'text/x-nfo' => 'nfo',
'text/x-setext' => 'etx',
'text/x-sfv' => 'sfv',
'text/x-uuencode' => 'uu',
'text/x-vcalendar' => 'vcs',
'text/x-vcard' => 'vcf',
'video/3gpp' => '3gp',
'video/3gpp2' => '3g2',
'video/h261' => 'h261',
'video/h263' => 'h263',
'video/h264' => 'h264',
'video/jpeg' => 'jpgv',
'video/jpm' => array('jpm', 'jpgm'),
'video/mj2' => 'mj2',
'video/mp4' => 'mp4',
'video/mpeg' => array('mpeg', 'mpg', 'mpe', 'm1v', 'm2v'),
'video/ogg' => 'ogv',
'video/quicktime' => array('qt', 'mov'),
'video/vnd.dece.hd' => array('uvh', 'uvvh'),
'video/vnd.dece.mobile' => array('uvm', 'uvvm'),
'video/vnd.dece.pd' => array('uvp', 'uvvp'),
'video/vnd.dece.sd' => array('uvs', 'uvvs'),
'video/vnd.dece.video' => array('uvv', 'uvvv'),
'video/vnd.dvb.file' => 'dvb',
'video/vnd.fvt' => 'fvt',
'video/vnd.mpegurl' => array('mxu', 'm4u'),
'video/vnd.ms-playready.media.pyv' => 'pyv',
'video/vnd.uvvu.mp4' => array('uvu', 'uvvu'),
'video/vnd.vivo' => 'viv',
'video/webm' => 'webm',
'video/x-f4v' => 'f4v',
'video/x-fli' => 'fli',
'video/x-flv' => 'flv',
'video/x-m4v' => 'm4v',
'video/x-matroska' => array('mkv', 'mk3d', 'mks'),
'video/x-mng' => 'mng',
'video/x-ms-asf' => array('asf', 'asx'),
'video/x-ms-vob' => 'vob',
'video/x-ms-wm' => 'wm',
'video/x-ms-wmv' => 'wmv',
'video/x-ms-wmx' => 'wmx',
'video/x-ms-wvx' => 'wvx',
'video/x-msvideo' => 'avi',
'video/x-sgi-movie' => 'movie',
);
/**
* Get a random MIME type
*
* @return string
* @example 'video/avi'
*/
public static function mimeType()
{
return static::randomElement(array_keys(static::$mimeTypes));
}
/**
* Get a random file extension (without a dot)
*
* @example avi
* @return string
*/
public static function fileExtension()
{
$random_extension = static::randomElement(array_values(static::$mimeTypes));
return is_array($random_extension) ? static::randomElement($random_extension) : $random_extension;
}
/**
* Copy a random file from the source directory to the target directory and returns the filename/fullpath
*
* @param string $sourceDirectory The directory to look for random file taking
* @param string $targetDirectory
* @param boolean $fullPath Whether to have the full path or just the filename
* @return string
*/
public static function file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true)
{
if (!is_dir($sourceDirectory)) {
throw new \InvalidArgumentException(sprintf('Source directory %s does not exist or is not a directory.', $sourceDirectory));
}
if (!is_dir($targetDirectory)) {
throw new \InvalidArgumentException(sprintf('Target directory %s does not exist or is not a directory.', $targetDirectory));
}
if ($sourceDirectory == $targetDirectory) {
throw new \InvalidArgumentException('Source and target directories must differ.');
}
// Drop . and .. and reset array keys
$files = array_filter(array_values(array_diff(scandir($sourceDirectory), array('.', '..'))), function ($file) use ($sourceDirectory) {
return is_file($sourceDirectory . DIRECTORY_SEPARATOR . $file) && is_readable($sourceDirectory . DIRECTORY_SEPARATOR . $file);
});
if (empty($files)) {
throw new \InvalidArgumentException(sprintf('Source directory %s is empty.', $sourceDirectory));
}
$sourceFullPath = $sourceDirectory . DIRECTORY_SEPARATOR . static::randomElement($files);
$destinationFile = Uuid::uuid() . '.' . pathinfo($sourceFullPath, PATHINFO_EXTENSION);
$destinationFullPath = $targetDirectory . DIRECTORY_SEPARATOR . $destinationFile;
if (false === copy($sourceFullPath, $destinationFullPath)) {
return false;
}
return $fullPath ? $destinationFullPath : $destinationFile;
}
}

View File

@@ -0,0 +1,88 @@
<?php
namespace Faker\Provider;
/**
* Depends on image generation from http://lorempixel.com/
*/
class Image extends Base
{
protected static $categories = array(
'abstract', 'animals', 'business', 'cats', 'city', 'food', 'nightlife',
'fashion', 'people', 'nature', 'sports', 'technics', 'transport'
);
/**
* Generate the URL that will return a random image
*
* Set randomize to false to remove the random GET parameter at the end of the url.
*
* @example 'http://lorempixel.com/640/480/?12345'
*/
public static function imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null)
{
$url = "http://lorempixel.com/{$width}/{$height}/";
if ($category) {
if (!in_array($category, static::$categories)) {
throw new \InvalidArgumentException(sprintf('Unkown image category "%s"', $category));
}
$url .= "{$category}/";
if ($word) {
$url .= "{$word}/";
}
}
if ($randomize) {
$url .= '?' . static::randomNumber(5, true);
}
return $url;
}
/**
* Download a remote random image to disk and return its location
*
* Requires curl, or allow_url_fopen to be on in php.ini.
*
* @example '/path/to/dir/13b73edae8443990be1aa8f1a483bc27.jpg'
*/
public static function image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null)
{
$dir = is_null($dir) ? sys_get_temp_dir() : $dir; // GNU/Linux / OS X / Windows compatible
// Validate directory path
if (!is_dir($dir) || !is_writable($dir)) {
throw new \InvalidArgumentException(sprintf('Cannot write to directory "%s"', $dir));
}
// Generate a random filename. Use the server address so that a file
// generated at the same time on a different server won't have a collision.
$name = md5(uniqid(empty($_SERVER['SERVER_ADDR']) ? '' : $_SERVER['SERVER_ADDR'], true));
$filename = $name .'.jpg';
$filepath = $dir . DIRECTORY_SEPARATOR . $filename;
$url = static::imageUrl($width, $height, $category, $randomize, $word);
// save file
if (function_exists('curl_exec')) {
// use cURL
$fp = fopen($filepath, 'w');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_FILE, $fp);
$success = curl_exec($ch);
curl_close($ch);
fclose($fp);
} elseif (ini_get('allow_url_fopen')) {
// use remote fopen() via copy()
$success = copy($url, $filepath);
} else {
return new \RuntimeException('The image formatter downloads an image from a remote HTTP server. Therefore, it requires that PHP can request remote hosts, either via cURL or fopen()');
}
if (!$success) {
// could not contact the distant URL or HTTP error - fail silently.
return false;
}
return $fullPath ? $filepath : $filename;
}
}

View File

@@ -0,0 +1,335 @@
<?php
namespace Faker\Provider;
class Internet extends \Faker\Provider\Base
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com');
protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org');
protected static $userNameFormats = array(
'{{lastName}}.{{firstName}}',
'{{firstName}}.{{lastName}}',
'{{firstName}}##',
'?{{lastName}}',
);
protected static $emailFormats = array(
'{{userName}}@{{domainName}}',
'{{userName}}@{{freeEmailDomain}}',
);
protected static $urlFormats = array(
'http://www.{{domainName}}/',
'http://{{domainName}}/',
'http://www.{{domainName}}/{{slug}}',
'http://www.{{domainName}}/{{slug}}',
'https://www.{{domainName}}/{{slug}}',
'http://www.{{domainName}}/{{slug}}.html',
'http://{{domainName}}/{{slug}}',
'http://{{domainName}}/{{slug}}',
'http://{{domainName}}/{{slug}}.html',
'https://{{domainName}}/{{slug}}.html',
);
public static function toAscii($string)
{
$transliterationTable = array(
'IJ' => 'I','Ö' => 'O','Œ' => 'O','Ü' => 'U','ä' => 'a','æ' => 'a',
'ij' => 'i','ö' => 'o','œ' => 'o','ü' => 'u','ß' => 's','ſ' => 's',
'À' => 'A','Á' => 'A','Â' => 'A','Ã' => 'A','Ä' => 'A','Å' => 'A',
'Æ' => 'A','Ā' => 'A','Ą' => 'A','Ă' => 'A','Ç' => 'C','Ć' => 'C',
'Č' => 'C','Ĉ' => 'C','Ċ' => 'C','Ď' => 'D','Đ' => 'D','È' => 'E',
'É' => 'E','Ê' => 'E','Ë' => 'E','Ē' => 'E','Ę' => 'E','Ě' => 'E',
'Ĕ' => 'E','Ė' => 'E','Ĝ' => 'G','Ğ' => 'G','Ġ' => 'G','Ģ' => 'G',
'Ĥ' => 'H','Ħ' => 'H','Ì' => 'I','Í' => 'I','Î' => 'I','Ï' => 'I',
'Ī' => 'I','Ĩ' => 'I','Ĭ' => 'I','Į' => 'I','İ' => 'I','Ĵ' => 'J',
'Ķ' => 'K','Ľ' => 'K','Ĺ' => 'K','Ļ' => 'K','Ŀ' => 'K','Ł' => 'L',
'Ñ' => 'N','Ń' => 'N','Ň' => 'N','Ņ' => 'N','Ŋ' => 'N','Ò' => 'O',
'Ó' => 'O','Ô' => 'O','Õ' => 'O','Ø' => 'O','Ō' => 'O','Ő' => 'O',
'Ŏ' => 'O','Ŕ' => 'R','Ř' => 'R','Ŗ' => 'R','Ś' => 'S','Ş' => 'S',
'Ŝ' => 'S','Ș' => 'S','Š' => 'S','Ť' => 'T','Ţ' => 'T','Ŧ' => 'T',
'Ț' => 'T','Ù' => 'U','Ú' => 'U','Û' => 'U','Ū' => 'U','Ů' => 'U',
'Ű' => 'U','Ŭ' => 'U','Ũ' => 'U','Ų' => 'U','Ŵ' => 'W','Ŷ' => 'Y',
'Ÿ' => 'Y','Ý' => 'Y','Ź' => 'Z','Ż' => 'Z','Ž' => 'Z','à' => 'a',
'á' => 'a','â' => 'a','ã' => 'a','ā' => 'a','ą' => 'a','ă' => 'a',
'å' => 'a','ç' => 'c','ć' => 'c','č' => 'c','ĉ' => 'c','ċ' => 'c',
'ď' => 'd','đ' => 'd','è' => 'e','é' => 'e','ê' => 'e','ë' => 'e',
'ē' => 'e','ę' => 'e','ě' => 'e','ĕ' => 'e','ė' => 'e','ƒ' => 'f',
'ĝ' => 'g','ğ' => 'g','ġ' => 'g','ģ' => 'g','ĥ' => 'h','ħ' => 'h',
'ì' => 'i','í' => 'i','î' => 'i','ï' => 'i','ī' => 'i','ĩ' => 'i',
'ĭ' => 'i','į' => 'i','ı' => 'i','ĵ' => 'j','ķ' => 'k','ĸ' => 'k',
'ł' => 'l','ľ' => 'l','ĺ' => 'l','ļ' => 'l','ŀ' => 'l','ñ' => 'n',
'ń' => 'n','ň' => 'n','ņ' => 'n','ʼn' => 'n','ŋ' => 'n','ò' => 'o',
'ó' => 'o','ô' => 'o','õ' => 'o','ø' => 'o','ō' => 'o','ő' => 'o',
'ŏ' => 'o','ŕ' => 'r','ř' => 'r','ŗ' => 'r','ś' => 's','š' => 's',
'ť' => 't','ù' => 'u','ú' => 'u','û' => 'u','ū' => 'u','ů' => 'u',
'ű' => 'u','ŭ' => 'u','ũ' => 'u','ų' => 'u','ŵ' => 'w','ÿ' => 'y',
'ý' => 'y','ŷ' => 'y','ż' => 'z','ź' => 'z','ž' => 'z','Α' => 'A',
'Ά' => 'A','Ἀ' => 'A','Ἁ' => 'A','Ἂ' => 'A','Ἃ' => 'A','Ἄ' => 'A',
'Ἅ' => 'A','Ἆ' => 'A','Ἇ' => 'A','ᾈ' => 'A','ᾉ' => 'A','ᾊ' => 'A',
'ᾋ' => 'A','ᾌ' => 'A','ᾍ' => 'A','ᾎ' => 'A','ᾏ' => 'A','Ᾰ' => 'A',
'Ᾱ' => 'A','Ὰ' => 'A','ᾼ' => 'A','Β' => 'B','Γ' => 'G','Δ' => 'D',
'Ε' => 'E','Έ' => 'E','Ἐ' => 'E','Ἑ' => 'E','Ἒ' => 'E','Ἓ' => 'E',
'Ἔ' => 'E','Ἕ' => 'E','Ὲ' => 'E','Ζ' => 'Z','Η' => 'I','Ή' => 'I',
'Ἠ' => 'I','Ἡ' => 'I','Ἢ' => 'I','Ἣ' => 'I','Ἤ' => 'I','Ἥ' => 'I',
'Ἦ' => 'I','Ἧ' => 'I','ᾘ' => 'I','ᾙ' => 'I','ᾚ' => 'I','ᾛ' => 'I',
'ᾜ' => 'I','ᾝ' => 'I','ᾞ' => 'I','ᾟ' => 'I','Ὴ' => 'I','ῌ' => 'I',
'Θ' => 'T','Ι' => 'I','Ί' => 'I','Ϊ' => 'I','Ἰ' => 'I','Ἱ' => 'I',
'Ἲ' => 'I','Ἳ' => 'I','Ἴ' => 'I','Ἵ' => 'I','Ἶ' => 'I','Ἷ' => 'I',
'Ῐ' => 'I','Ῑ' => 'I','Ὶ' => 'I','Κ' => 'K','Λ' => 'L','Μ' => 'M',
'Ν' => 'N','Ξ' => 'K','Ο' => 'O','Ό' => 'O','Ὀ' => 'O','Ὁ' => 'O',
'Ὂ' => 'O','Ὃ' => 'O','Ὄ' => 'O','Ὅ' => 'O','Ὸ' => 'O','Π' => 'P',
'Ρ' => 'R','Ῥ' => 'R','Σ' => 'S','Τ' => 'T','Υ' => 'Y','Ύ' => 'Y',
'Ϋ' => 'Y','Ὑ' => 'Y','Ὓ' => 'Y','Ὕ' => 'Y','Ὗ' => 'Y','Ῠ' => 'Y',
'Ῡ' => 'Y','Ὺ' => 'Y','Φ' => 'F','Χ' => 'X','Ψ' => 'P','Ω' => 'O',
'Ώ' => 'O','Ὠ' => 'O','Ὡ' => 'O','Ὢ' => 'O','Ὣ' => 'O','Ὤ' => 'O',
'Ὥ' => 'O','Ὦ' => 'O','Ὧ' => 'O','ᾨ' => 'O','ᾩ' => 'O','ᾪ' => 'O',
'ᾫ' => 'O','ᾬ' => 'O','ᾭ' => 'O','ᾮ' => 'O','ᾯ' => 'O','Ὼ' => 'O',
'ῼ' => 'O','α' => 'a','ά' => 'a','ἀ' => 'a','ἁ' => 'a','ἂ' => 'a',
'ἃ' => 'a','ἄ' => 'a','ἅ' => 'a','ἆ' => 'a','ἇ' => 'a','ᾀ' => 'a',
'ᾁ' => 'a','ᾂ' => 'a','ᾃ' => 'a','ᾄ' => 'a','ᾅ' => 'a','ᾆ' => 'a',
'ᾇ' => 'a','ὰ' => 'a','ᾰ' => 'a','ᾱ' => 'a','ᾲ' => 'a','ᾳ' => 'a',
'ᾴ' => 'a','ᾶ' => 'a','ᾷ' => 'a','β' => 'b','γ' => 'g','δ' => 'd',
'ε' => 'e','έ' => 'e','ἐ' => 'e','ἑ' => 'e','ἒ' => 'e','ἓ' => 'e',
'ἔ' => 'e','ἕ' => 'e','ὲ' => 'e','ζ' => 'z','η' => 'i','ή' => 'i',
'ἠ' => 'i','ἡ' => 'i','ἢ' => 'i','ἣ' => 'i','ἤ' => 'i','ἥ' => 'i',
'ἦ' => 'i','ἧ' => 'i','ᾐ' => 'i','ᾑ' => 'i','ᾒ' => 'i','ᾓ' => 'i',
'ᾔ' => 'i','ᾕ' => 'i','ᾖ' => 'i','ᾗ' => 'i','ὴ' => 'i','ῂ' => 'i',
'ῃ' => 'i','ῄ' => 'i','ῆ' => 'i','ῇ' => 'i','θ' => 't','ι' => 'i',
'ί' => 'i','ϊ' => 'i','ΐ' => 'i','ἰ' => 'i','ἱ' => 'i','ἲ' => 'i',
'ἳ' => 'i','ἴ' => 'i','ἵ' => 'i','ἶ' => 'i','ἷ' => 'i','ὶ' => 'i',
'ῐ' => 'i','ῑ' => 'i','ῒ' => 'i','ῖ' => 'i','ῗ' => 'i','κ' => 'k',
'λ' => 'l','μ' => 'm','ν' => 'n','ξ' => 'k','ο' => 'o','ό' => 'o',
'ὀ' => 'o','ὁ' => 'o','ὂ' => 'o','ὃ' => 'o','ὄ' => 'o','ὅ' => 'o',
'ὸ' => 'o','π' => 'p','ρ' => 'r','ῤ' => 'r','ῥ' => 'r','σ' => 's',
'ς' => 's','τ' => 't','υ' => 'y','ύ' => 'y','ϋ' => 'y','ΰ' => 'y',
'ὐ' => 'y','ὑ' => 'y','ὒ' => 'y','ὓ' => 'y','ὔ' => 'y','ὕ' => 'y',
'ὖ' => 'y','ὗ' => 'y','ὺ' => 'y','ῠ' => 'y','ῡ' => 'y','ῢ' => 'y',
'ῦ' => 'y','ῧ' => 'y','φ' => 'f','χ' => 'x','ψ' => 'p','ω' => 'o',
'ώ' => 'o','ὠ' => 'o','ὡ' => 'o','ὢ' => 'o','ὣ' => 'o','ὤ' => 'o',
'ὥ' => 'o','ὦ' => 'o','ὧ' => 'o','ᾠ' => 'o','ᾡ' => 'o','ᾢ' => 'o',
'ᾣ' => 'o','ᾤ' => 'o','ᾥ' => 'o','ᾦ' => 'o','ᾧ' => 'o','ὼ' => 'o',
'ῲ' => 'o','ῳ' => 'o','ῴ' => 'o','ῶ' => 'o','ῷ' => 'o','А' => 'A',
'Б' => 'B','В' => 'V','Г' => 'G','Д' => 'D','Е' => 'E','Ё' => 'E',
'Ж' => 'Z','З' => 'Z','И' => 'I','Й' => 'I','К' => 'K','Л' => 'L',
'М' => 'M','Н' => 'N','О' => 'O','П' => 'P','Р' => 'R','С' => 'S',
'Т' => 'T','У' => 'U','Ф' => 'F','Х' => 'K','Ц' => 'T','Ч' => 'C',
'Ш' => 'S','Щ' => 'S','Ы' => 'Y','Э' => 'E','Ю' => 'Y','Я' => 'Y',
'а' => 'A','б' => 'B','в' => 'V','г' => 'G','д' => 'D','е' => 'E',
'ё' => 'E','ж' => 'Z','з' => 'Z','и' => 'I','й' => 'I','к' => 'K',
'л' => 'L','м' => 'M','н' => 'N','о' => 'O','п' => 'P','р' => 'R',
'с' => 'S','т' => 'T','у' => 'U','ф' => 'F','х' => 'K','ц' => 'T',
'ч' => 'C','ш' => 'S','щ' => 'S','ы' => 'Y','э' => 'E','ю' => 'Y',
'я' => 'Y','ð' => 'd','Ð' => 'D','þ' => 't','Þ' => 'T','ა' => 'a',
'ბ' => 'b','გ' => 'g','დ' => 'd','ე' => 'e','ვ' => 'v','ზ' => 'z',
'თ' => 't','ი' => 'i','კ' => 'k','ლ' => 'l','მ' => 'm','ნ' => 'n',
'ო' => 'o','პ' => 'p','ჟ' => 'z','რ' => 'r','ს' => 's','ტ' => 't',
'უ' => 'u','ფ' => 'p','ქ' => 'k','ღ' => 'g','' => 'q','შ' => 's',
'ჩ' => 'c','ც' => 't','ძ' => 'd','წ' => 't','ჭ' => 'c','ხ' => 'k',
'ჯ' => 'j','ჰ' => 'h','ā' => 'a','ţ' => 't','ʼ' => "'", '̧' => '',
'ḩ' => 'h','ʼ' => "'",'' => "'",'' => "'",'ừ' => 'u','/' => '',
'ế' => 'e','ả' => 'a','ị' => 'i','ậ' => 'a','ệ' => 'e','ỉ' => 'i',
'ồ' => 'o','ề' => 'e','ơ' => 'o','ạ' => 'a','ẵ' => 'a','ư' => 'u',
'ằ' => 'a','ầ' => 'a','ḑ' => 'd','Ḩ' => 'H','Ḑ' => 'D','ḑ' => 'd',
'Ģ' => 'G','Š' => 'S','ļ' => 'l','ž' => 'z','Ē' => 'E','ņ' => 'n',
'Č' => 'C','ș' => 's','ț' => 't', 'ộ' => 'o','ắ' => 'a','ş' => 's',
"'" => '', 'ու' => 'u','ա' => 'a','բ' => 'b','գ' => 'g','դ' => 'd',
'ե' => 'e','զ' => 'z','է' => 'e','ը' => 'y','թ' => 't','ժ' => 'zh',
'ի' => 'i','լ' => 'l','խ' => 'kh','ծ' => 'ts','կ' => 'k','հ' => 'h',
'ձ' => 'dz','ղ' => 'gh','ճ' => 'ch','մ' => 'm','յ' => 'y','ն' => 'n',
'շ' => 'sh','ո' => 'o','չ' => 'ch','պ' => 'p','ջ' => 'j','ռ' => 'r',
'ս' => 's','վ' => 'v','տ' => 't','ր' => 'r','ց' => 'ts','փ' => 'p',
'ք' => 'q','և' => 'ev','օ' => 'o','ֆ' => 'f',
);
return str_replace(array_keys($transliterationTable), array_values($transliterationTable), $string);
}
private static function transliterate($string)
{
$transId = 'Any-Latin; Latin-ASCII; NFD; [:Nonspacing Mark:] Remove; NFC; Lower();';
if (function_exists('transliterator_transliterate') && $transliterator = \Transliterator::create($transId)) {
$transString = $transliterator->transliterate($string);
} else {
$transString = static::toAscii($string);
}
return preg_replace('/[^A-Za-z0-9_.]/u', '', $transString);
}
/**
* @example 'jdoe@acme.biz'
*/
public function email()
{
$format = static::randomElement(static::$emailFormats);
return $this->generator->parse($format);
}
/**
* @example 'jdoe@example.com'
*/
final public function safeEmail()
{
return preg_replace('/\s/u', '', $this->userName() . '@' . static::safeEmailDomain());
}
/**
* @example 'jdoe@gmail.com'
*/
public function freeEmail()
{
return preg_replace('/\s/u', '', $this->userName() . '@' . static::freeEmailDomain());
}
/**
* @example 'jdoe@dawson.com'
*/
public function companyEmail()
{
return preg_replace('/\s/u', '', $this->userName() . '@' . $this->domainName());
}
/**
* @example 'gmail.com'
*/
public static function freeEmailDomain()
{
return static::randomElement(static::$freeEmailDomain);
}
/**
* @example 'example.org'
*/
final public static function safeEmailDomain()
{
$domains = array(
'example.com',
'example.org',
'example.net'
);
return static::randomElement($domains);
}
/**
* @example 'jdoe'
*/
public function userName()
{
$format = static::randomElement(static::$userNameFormats);
$username = static::bothify($this->generator->parse($format));
return static::transliterate($username);
}
/**
* @example 'fY4èHdZv68'
*/
public function password($minLength = 6, $maxLength = 20)
{
$pattern = str_repeat('*', $this->numberBetween($minLength, $maxLength));
return $this->asciify($pattern);
}
/**
* @example 'tiramisu.com'
*/
public function domainName()
{
return $this->domainWord() . '.' . $this->tld();
}
/**
* @example 'faber'
*/
public function domainWord()
{
$lastName = $this->generator->format('lastName');
return static::transliterate($lastName);
}
/**
* @example 'com'
*/
public function tld()
{
return static::randomElement(static::$tld);
}
/**
* @example 'http://www.runolfsdottir.com/'
*/
public function url()
{
$format = static::randomElement(static::$urlFormats);
return $this->generator->parse($format);
}
/**
* @example 'aut-repellat-commodi-vel-itaque-nihil-id-saepe-nostrum'
*/
public function slug($nbWords = 6, $variableNbWords = true)
{
if ($nbWords <= 0) {
return '';
}
if ($variableNbWords) {
$nbWords = (int) ($nbWords * mt_rand(60, 140) / 100) + 1;
}
$words = $this->generator->words($nbWords);
return join($words, '-');
}
/**
* @example '237.149.115.38'
*/
public function ipv4()
{
return long2ip(mt_rand(0, 1) == 0 ? mt_rand(-2147483648, 0) : mt_rand(1, 2147483647));
}
/**
* @example '35cd:186d:3e23:2986:ef9f:5b41:42a4:e6f1'
*/
public function ipv6()
{
$res = array();
for ($i=0; $i < 8; $i++) {
$res []= dechex(mt_rand(0, "65535"));
}
return join(':', $res);
}
/**
* @example '10.1.1.17'
*/
public static function localIpv4()
{
if (static::numberBetween(0, 1) === 0) {
// 10.x.x.x range
$ip = long2ip(static::numberBetween(167772160, 184549375));
} else {
// 192.168.x.x range
$ip = long2ip(static::numberBetween(3232235520, 3232301055));
}
return $ip;
}
/**
* @example '32:F1:39:2F:D6:18'
*/
public static function macAddress()
{
for ($i=0; $i<6; $i++) {
$mac[] = sprintf('%02X', static::numberBetween(0, 0xff));
}
$mac = implode(':', $mac);
return $mac;
}
}

View File

@@ -0,0 +1,215 @@
<?php
namespace Faker\Provider;
class Lorem extends \Faker\Provider\Base
{
protected static $wordList = array(
'alias', 'consequatur', 'aut', 'perferendis', 'sit', 'voluptatem',
'accusantium', 'doloremque', 'aperiam', 'eaque','ipsa', 'quae', 'ab',
'illo', 'inventore', 'veritatis', 'et', 'quasi', 'architecto',
'beatae', 'vitae', 'dicta', 'sunt', 'explicabo', 'aspernatur', 'aut',
'odit', 'aut', 'fugit', 'sed', 'quia', 'consequuntur', 'magni',
'dolores', 'eos', 'qui', 'ratione', 'voluptatem', 'sequi', 'nesciunt',
'neque', 'dolorem', 'ipsum', 'quia', 'dolor', 'sit', 'amet',
'consectetur', 'adipisci', 'velit', 'sed', 'quia', 'non', 'numquam',
'eius', 'modi', 'tempora', 'incidunt', 'ut', 'labore', 'et', 'dolore',
'magnam', 'aliquam', 'quaerat', 'voluptatem', 'ut', 'enim', 'ad',
'minima', 'veniam', 'quis', 'nostrum', 'exercitationem', 'ullam',
'corporis', 'nemo', 'enim', 'ipsam', 'voluptatem', 'quia', 'voluptas',
'sit', 'suscipit', 'laboriosam', 'nisi', 'ut', 'aliquid', 'ex', 'ea',
'commodi', 'consequatur', 'quis', 'autem', 'vel', 'eum', 'iure',
'reprehenderit', 'qui', 'in', 'ea', 'voluptate', 'velit', 'esse',
'quam', 'nihil', 'molestiae', 'et', 'iusto', 'odio', 'dignissimos',
'ducimus', 'qui', 'blanditiis', 'praesentium', 'laudantium', 'totam',
'rem', 'voluptatum', 'deleniti', 'atque', 'corrupti', 'quos',
'dolores', 'et', 'quas', 'molestias', 'excepturi', 'sint',
'occaecati', 'cupiditate', 'non', 'provident', 'sed', 'ut',
'perspiciatis', 'unde', 'omnis', 'iste', 'natus', 'error',
'similique', 'sunt', 'in', 'culpa', 'qui', 'officia', 'deserunt',
'mollitia', 'animi', 'id', 'est', 'laborum', 'et', 'dolorum', 'fuga',
'et', 'harum', 'quidem', 'rerum', 'facilis', 'est', 'et', 'expedita',
'distinctio', 'nam', 'libero', 'tempore', 'cum', 'soluta', 'nobis',
'est', 'eligendi', 'optio', 'cumque', 'nihil', 'impedit', 'quo',
'porro', 'quisquam', 'est', 'qui', 'minus', 'id', 'quod', 'maxime',
'placeat', 'facere', 'possimus', 'omnis', 'voluptas', 'assumenda',
'est', 'omnis', 'dolor', 'repellendus', 'temporibus', 'autem',
'quibusdam', 'et', 'aut', 'consequatur', 'vel', 'illum', 'qui',
'dolorem', 'eum', 'fugiat', 'quo', 'voluptas', 'nulla', 'pariatur',
'at', 'vero', 'eos', 'et', 'accusamus', 'officiis', 'debitis', 'aut',
'rerum', 'necessitatibus', 'saepe', 'eveniet', 'ut', 'et',
'voluptates', 'repudiandae', 'sint', 'et', 'molestiae', 'non',
'recusandae', 'itaque', 'earum', 'rerum', 'hic', 'tenetur', 'a',
'sapiente', 'delectus', 'ut', 'aut', 'reiciendis', 'voluptatibus',
'maiores', 'doloribus', 'asperiores', 'repellat'
);
/**
* @example 'Lorem'
* @return string
*/
public static function word()
{
return static::randomElement(static::$wordList);
}
/**
* Generate an array of random words
*
* @example array('Lorem', 'ipsum', 'dolor')
* @param integer $nb how many words to return
* @param bool $asText if true the sentences are returned as one string
* @return array|string
*/
public static function words($nb = 3, $asText = false)
{
$words = array();
for ($i=0; $i < $nb; $i++) {
$words []= static::word();
}
return $asText ? join(' ', $words) : $words;
}
/**
* Generate a random sentence
*
* @example 'Lorem ipsum dolor sit amet.'
* @param integer $nbWords around how many words the sentence should contain
* @param boolean $variableNbWords set to false if you want exactly $nbWords returned,
* otherwise $nbWords may vary by +/-40% with a minimum of 1
* @return string
*/
public static function sentence($nbWords = 6, $variableNbWords = true)
{
if ($nbWords <= 0) {
return '';
}
if ($variableNbWords) {
$nbWords = self::randomizeNbElements($nbWords);
}
$words = static::words($nbWords);
$words[0] = ucwords($words[0]);
return join($words, ' ') . '.';
}
/**
* Generate an array of sentences
*
* @example array('Lorem ipsum dolor sit amet.', 'Consectetur adipisicing eli.')
* @param integer $nb how many sentences to return
* @param bool $asText if true the sentences are returned as one string
* @return array|string
*/
public static function sentences($nb = 3, $asText = false)
{
$sentences = array();
for ($i=0; $i < $nb; $i++) {
$sentences []= static::sentence();
}
return $asText ? join(' ', $sentences) : $sentences;
}
/**
* Generate a single paragraph
*
* @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
* @param integer $nbSentences around how many sentences the paragraph should contain
* @param boolean $variableNbSentences set to false if you want exactly $nbSentences returned,
* otherwise $nbSentences may vary by +/-40% with a minimum of 1
* @return string
*/
public static function paragraph($nbSentences = 3, $variableNbSentences = true)
{
if ($nbSentences <= 0) {
return '';
}
if ($variableNbSentences) {
$nbSentences = self::randomizeNbElements($nbSentences);
}
return join(static::sentences($nbSentences), ' ');
}
/**
* Generate an array of paragraphs
*
* @example array($paragraph1, $paragraph2, $paragraph3)
* @param integer $nb how many paragraphs to return
* @param bool $asText if true the paragraphs are returned as one string, separated by two newlines
* @return array|string
*/
public static function paragraphs($nb = 3, $asText = false)
{
$paragraphs = array();
for ($i=0; $i < $nb; $i++) {
$paragraphs []= static::paragraph();
}
return $asText ? join("\n\n", $paragraphs) : $paragraphs;
}
/**
* Generate a text string.
* Depending on the $maxNbChars, returns a string made of words, sentences, or paragraphs.
*
* @example 'Sapiente sunt omnis. Ut pariatur ad autem ducimus et. Voluptas rem voluptas sint modi dolorem amet.'
* @param integer $maxNbChars Maximum number of characters the text should contain (minimum 5)
* @return string
*/
public static function text($maxNbChars = 200)
{
$text = array();
if ($maxNbChars < 5) {
throw new \InvalidArgumentException('text() can only generate text of at least 5 characters');
} elseif ($maxNbChars < 25) {
// join words
while (empty($text)) {
$size = 0;
// determine how many words are needed to reach the $maxNbChars once;
while ($size < $maxNbChars) {
$word = ($size ? ' ' : '') . static::word();
$text []= $word;
$size += strlen($word);
}
array_pop($text);
}
$text[0][0] = static::toUpper($text[0][0]);
$text[count($text) - 1] .= '.';
} elseif ($maxNbChars < 100) {
// join sentences
while (empty($text)) {
$size = 0;
// determine how many sentences are needed to reach the $maxNbChars once;
while ($size < $maxNbChars) {
$sentence = ($size ? ' ' : '') . static::sentence();
$text []= $sentence;
$size += strlen($sentence);
}
array_pop($text);
}
} else {
// join paragraphs
while (empty($text)) {
$size = 0;
// determine how many paragraphs are needed to reach the $maxNbChars once;
while ($size < $maxNbChars) {
$paragraph = ($size ? "\n" : '') . static::paragraph();
$text []= $paragraph;
$size += strlen($paragraph);
}
array_pop($text);
}
}
return join($text, '');
}
protected static function randomizeNbElements($nbElements)
{
return (int) ($nbElements * mt_rand(60, 140) / 100) + 1;
}
}

View File

@@ -0,0 +1,258 @@
<?php
namespace Faker\Provider;
class Miscellaneous extends \Faker\Provider\Base
{
protected static $languageCode = array('cn', 'de', 'en', 'es', 'fr', 'it', 'pt', 'ru');
/**
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
* On date of 2014-10-19
*/
protected static $countryCode = array(
'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR',
'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE',
'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ',
'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD',
'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR',
'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM',
'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI',
'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF',
'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS',
'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU',
'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT',
'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN',
'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK',
'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME',
'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ',
'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA',
'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU',
'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM',
'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS',
'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI',
'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV',
'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK',
'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA',
'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI',
'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW',
);
/**
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
* On date of 2014-10-19
*/
protected static $countryISOAlpha3 = array(
'ABW', 'AFG', 'AGO', 'AIA', 'ALA', 'ALB', 'AND', 'ARE', 'ARG', 'ARM',
'ASM', 'ATA', 'ATF', 'ATG', 'AUS', 'AUT', 'AZE', 'BDI', 'BEL', 'BEN',
'BES', 'BFA', 'BGD', 'BGR', 'BHR', 'BHS', 'BIH', 'BLM', 'BLR', 'BLZ',
'BMU', 'BOL', 'BRA', 'BRB', 'BRN', 'BTN', 'BVT', 'BWA', 'CAF', 'CAN',
'CCK', 'CHE', 'CHL', 'CHN', 'CIV', 'CMR', 'COD', 'COG', 'COK', 'COL',
'COM', 'CPV', 'CRI', 'CUB', 'CUW', 'CXR', 'CYM', 'CYP', 'CZE', 'DEU',
'DJI', 'DMA', 'DNK', 'DOM', 'DZA', 'ECU', 'EGY', 'ERI', 'ESH', 'ESP',
'EST', 'ETH', 'FIN', 'FJI', 'FLK', 'FRA', 'FRO', 'FSM', 'GAB', 'GBR',
'GEO', 'GGY', 'GHA', 'GIB', 'GIN', 'GLP', 'GMB', 'GNB', 'GNQ', 'GRC',
'GRD', 'GRL', 'GTM', 'GUF', 'GUM', 'GUY', 'HKG', 'HMD', 'HND', 'HRV',
'HTI', 'HUN', 'IDN', 'IMN', 'IND', 'IOT', 'IRL', 'IRN', 'IRQ', 'ISL',
'ISR', 'ITA', 'JAM', 'JEY', 'JOR', 'JPN', 'KAZ', 'KEN', 'KGZ', 'KHM',
'KIR', 'KNA', 'KOR', 'KWT', 'LAO', 'LBN', 'LBR', 'LBY', 'LCA', 'LIE',
'LKA', 'LSO', 'LTU', 'LUX', 'LVA', 'MAC', 'MAF', 'MAR', 'MCO', 'MDA',
'MDG', 'MDV', 'MEX', 'MHL', 'MKD', 'MLI', 'MLT', 'MMR', 'MNE', 'MNG',
'MNP', 'MOZ', 'MRT', 'MSR', 'MTQ', 'MUS', 'MWI', 'MYS', 'MYT', 'NAM',
'NCL', 'NER', 'NFK', 'NGA', 'NIC', 'NIU', 'NLD', 'NOR', 'NPL', 'NRU',
'NZL', 'OMN', 'PAK', 'PAN', 'PCN', 'PER', 'PHL', 'PLW', 'PNG', 'POL',
'PRI', 'PRK', 'PRT', 'PRY', 'PSE', 'PYF', 'QAT', 'REU', 'ROU', 'RUS',
'RWA', 'SAU', 'SDN', 'SEN', 'SGP', 'SGS', 'SHN', 'SJM', 'SLB', 'SLE',
'SLV', 'SMR', 'SOM', 'SPM', 'SRB', 'SSD', 'STP', 'SUR', 'SVK', 'SVN',
'SWE', 'SWZ', 'SXM', 'SYC', 'SYR', 'TCA', 'TCD', 'TGO', 'THA', 'TJK',
'TKL', 'TKM', 'TLS', 'TON', 'TTO', 'TUN', 'TUR', 'TUV', 'TWN', 'TZA',
'UGA', 'UKR', 'UMI', 'URY', 'USA', 'UZB', 'VAT', 'VCT', 'VEN', 'VGB',
'VIR', 'VNM', 'VUT', 'WLF', 'WSM', 'YEM', 'ZAF', 'ZMB', 'ZWE',
);
protected static $localeData = array(
'aa_DJ', 'aa_ER', 'aa_ET',
'af_NA', 'af_ZA', 'ak_GH',
'am_ET', 'ar_AE', 'ar_BH', 'ar_DZ',
'ar_EG', 'ar_IQ', 'ar_JO', 'ar_KW', 'ar_LB',
'ar_LY', 'ar_MA', 'ar_OM', 'ar_QA', 'ar_SA',
'ar_SD', 'ar_SY', 'ar_TN', 'ar_YE',
'as_IN', 'az_AZ', 'be_BY',
'bg_BG', 'bn_BD', 'bn_IN',
'bo_CN', 'bo_IN', 'bs_BA',
'byn_ER', 'ca_ES',
'cch_NG', 'cs_CZ',
'cy_GB', 'da_DK', 'de_AT',
'de_BE', 'de_CH', 'de_DE', 'de_LI', 'de_LU',
'dv_MV', 'dz_BT',
'ee_GH', 'ee_TG', 'el_CY', 'el_GR',
'en_AS', 'en_AU', 'en_BE', 'en_BW',
'en_BZ', 'en_CA', 'en_GB', 'en_GU', 'en_HK',
'en_IE', 'en_IN', 'en_JM', 'en_MH', 'en_MP',
'en_MT', 'en_NA', 'en_NZ', 'en_PH', 'en_PK',
'en_SG', 'en_TT', 'en_UM', 'en_US', 'en_VI',
'en_ZA', 'en_ZW', 'es_AR',
'es_BO', 'es_CL', 'es_CO', 'es_CR', 'es_DO',
'es_EC', 'es_ES', 'es_GT', 'es_HN', 'es_MX',
'es_NI', 'es_PA', 'es_PE', 'es_PR', 'es_PY',
'es_SV', 'es_US', 'es_UY', 'es_VE',
'et_EE', 'eu_ES', 'fa_AF',
'fa_IR', 'fi_FI', 'fil_PH',
'fo_FO', 'fr_BE', 'fr_CA',
'fr_CH', 'fr_FR', 'fr_LU', 'fr_MC', 'fr_SN',
'fur_IT', 'ga_IE',
'gaa_GH', 'gez_ER', 'gez_ET',
'gl_ES', 'gsw_CH', 'gu_IN',
'gv_GB', 'ha_GH', 'ha_NE',
'ha_NG', 'ha_SD', 'haw_US',
'he_IL', 'hi_IN', 'hr_HR',
'hu_HU', 'hy_AM',
'id_ID', 'ig_NG',
'ii_CN', 'is_IS',
'it_CH', 'it_IT',
'ja_JP', 'ka_GE', 'kaj_NG',
'kam_KE', 'kcg_NG',
'kfo_CI', 'kk_KZ', 'kl_GL',
'km_KH', 'kn_IN',
'ko_KR', 'kok_IN', 'kpe_GN',
'kpe_LR', 'ku_IQ', 'ku_IR', 'ku_SY',
'ku_TR', 'kw_GB', 'ky_KG',
'ln_CD', 'ln_CG', 'lo_LA',
'lt_LT', 'lv_LV',
'mk_MK', 'ml_IN', 'mn_CN',
'mn_MN', 'mr_IN',
'ms_BN', 'ms_MY', 'mt_MT',
'my_MM', 'nb_NO', 'nds_DE',
'ne_IN', 'ne_NP', 'nl_BE',
'nl_NL', 'nn_NO',
'nr_ZA', 'nso_ZA', 'ny_MW',
'oc_FR', 'om_ET', 'om_KE',
'or_IN', 'pa_IN', 'pa_PK',
'pl_PL', 'ps_AF',
'pt_BR', 'pt_PT', 'ro_MD', 'ro_RO',
'ru_RU', 'ru_UA', 'rw_RW',
'sa_IN', 'se_FI', 'se_NO',
'sh_BA', 'sh_CS', 'sh_YU',
'si_LK', 'sid_ET', 'sk_SK',
'sl_SI', 'so_DJ', 'so_ET',
'so_KE', 'so_SO', 'sq_AL',
'sr_BA', 'sr_CS', 'sr_ME', 'sr_RS', 'sr_YU',
'ss_SZ', 'ss_ZA', 'st_LS',
'st_ZA', 'sv_FI', 'sv_SE',
'sw_KE', 'sw_TZ', 'syr_SY',
'ta_IN', 'te_IN', 'tg_TJ',
'th_TH', 'ti_ER', 'ti_ET',
'tig_ER', 'tn_ZA',
'to_TO', 'tr_TR',
'trv_TW', 'ts_ZA', 'tt_RU',
'ug_CN', 'uk_UA',
'ur_IN', 'ur_PK', 'uz_AF', 'uz_UZ',
've_ZA', 'vi_VN',
'wal_ET', 'wo_SN', 'xh_ZA',
'yo_NG', 'zh_CN', 'zh_HK',
'zh_MO', 'zh_SG', 'zh_TW', 'zu_ZA',
);
/**
* @link http://en.wikipedia.org/wiki/ISO_4217
* On date of 2015-01-10
*/
protected static $currencyCode = array(
'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN',
'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL',
'BSD', 'BTC', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLF',
'CLP', 'CNY', 'COP', 'CRC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP',
'DZD', 'EEK', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL',
'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK',
'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP',
'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD',
'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD',
'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MTL', 'MUR',
'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR',
'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR',
'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD',
'SHP', 'SLL', 'SOS', 'SRD', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS',
'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD',
'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XAG', 'XAU', 'XCD',
'XDR', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMK', 'ZMW', 'ZWL'
);
/**
* Return a boolean, true or false
*
* @param integer $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true).
* @return bool
* @example true
*/
public static function boolean($chanceOfGettingTrue = 50)
{
return mt_rand(1, 100) <= $chanceOfGettingTrue ? true : false;
}
/**
* @example 'cfcd208495d565ef66e7dff9f98764da'
*/
public static function md5()
{
return md5(mt_rand());
}
/**
* @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2'
*/
public static function sha1()
{
return sha1(mt_rand());
}
/**
* @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654'
*/
public static function sha256()
{
return hash('sha256', mt_rand());
}
/**
* @example 'fr_FR'
*/
public static function locale()
{
return static::randomElement(static::$localeData);
}
/**
* @example 'FR'
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
*/
public static function countryCode()
{
return static::randomElement(static::$countryCode);
}
/**
* @example 'FRA'
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
*/
public static function countryISOAlpha3()
{
return static::randomElement(static::$countryISOAlpha3);
}
/**
* @example 'fr'
*/
public static function languageCode()
{
return static::randomElement(static::$languageCode);
}
/**
* @example 'EUR'
* @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
*/
public static function currencyCode()
{
return static::randomElement(static::$currencyCode);
}
}

View File

@@ -0,0 +1,298 @@
<?php
namespace Faker\Provider;
use Faker\Calculator\Luhn;
class Payment extends Base
{
public static $expirationDateFormat = "m/y";
protected static $cardVendors = array(
'Visa', 'Visa', 'Visa', 'Visa', 'Visa',
'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard',
'American Express', 'Discover Card'
);
// see http://en.wikipedia.org/wiki/Bank_card_number for a reference of existing prefixes
protected static $cardParams = array(
'Visa' => array(
"4539########",
"4539###########",
"4556########",
"4556###########",
"4916########",
"4916###########",
"4532########",
"4532###########",
"4929########",
"4929###########",
"40240071####",
"40240071#######",
"4485########",
"4485###########",
"4716########",
"4716###########",
"4###########",
"4##############"
),
'MasterCard' => array(
"51#############",
"52#############",
"53#############",
"54#############",
"55#############"
),
'American Express' => array(
"34############",
"37############"
),
'Discover Card' => array(
"6011###########"
),
);
/**
* @var array list of IBAN formats, source: @link http://www.swift.com/dsp/resources/documents/IBAN_Registry.txt
*/
protected static $ibanFormats = array(
'AD' => array(array('n', 4), array('n', 4), array('c', 12)),
'AE' => array(array('n', 3), array('n', 16)),
'AL' => array(array('n', 8), array('c', 16)),
'AT' => array(array('n', 5), array('n', 11)),
'AZ' => array(array('a', 4), array('c', 20)),
'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)),
'BE' => array(array('n', 3), array('n', 7), array('n', 2)),
'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)),
'BH' => array(array('a', 4), array('c', 14)),
'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)),
'CH' => array(array('n', 5), array('c', 12)),
'CR' => array(array('n', 3), array('n', 14)),
'CY' => array(array('n', 3), array('n', 5), array('c', 16)),
'CZ' => array(array('n', 4), array('n', 6), array('n', 10)),
'DE' => array(array('n', 8), array('n', 10)),
'DK' => array(array('n', 4), array('n', 9), array('n', 1)),
'DO' => array(array('c', 4), array('n', 20)),
'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)),
'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)),
'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)),
'GB' => array(array('a', 4), array('n', 6), array('n', 8)),
'GE' => array(array('a', 2), array('n', 16)),
'GI' => array(array('a', 4), array('c', 15)),
'GR' => array(array('n', 3), array('n', 4), array('c', 16)),
'GT' => array(array('c', 4), array('c', 20)),
'HR' => array(array('n', 7), array('n', 10)),
'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)),
'IE' => array(array('a', 4), array('n', 6), array('n', 8)),
'IL' => array(array('n', 3), array('n', 3), array('n', 13)),
'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)),
'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)),
'KW' => array(array('a', 4), array('c', 22)),
'KZ' => array(array('n', 3), array('c', 13)),
'LB' => array(array('n', 4), array('c', 20)),
'LI' => array(array('n', 5), array('c', 12)),
'LT' => array(array('n', 5), array('n', 11)),
'LU' => array(array('n', 3), array('c', 13)),
'LV' => array(array('a', 4), array('c', 13)),
'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)),
'MD' => array(array('c', 2), array('c', 18)),
'ME' => array(array('n', 3), array('n', 13), array('n', 2)),
'MK' => array(array('n', 3), array('c', 10), array('n', 2)),
'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)),
'MT' => array(array('a', 4), array('n', 5), array('c', 18)),
'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)),
'NL' => array(array('a', 4), array('n', 10)),
'NO' => array(array('n', 4), array('n', 6), array('n', 1)),
'PK' => array(array('a', 4), array('c', 16)),
'PL' => array(array('n', 8), array('n', 16)),
'PS' => array(array('a', 4), array('c', 21)),
'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)),
'RO' => array(array('a', 4), array('c', 16)),
'RS' => array(array('n', 3), array('n', 13), array('n', 2)),
'SA' => array(array('n', 2), array('c', 18)),
'SE' => array(array('n', 3), array('n', 16), array('n', 1)),
'SI' => array(array('n', 5), array('n', 8), array('n', 2)),
'SK' => array(array('n', 4), array('n', 6), array('n', 10)),
'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)),
'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)),
'TR' => array(array('n', 5), array('c', 1), array('c', 16)),
'VG' => array(array('a', 4), array('n', 16)),
);
/**
* @return string Returns a credit card vendor name
*
* @example 'MasterCard'
*/
public static function creditCardType()
{
return static::randomElement(static::$cardVendors);
}
/**
* Returns the String of a credit card number.
*
* @param string $type Supporting any of 'Visa', 'MasterCard', 'Amercian Express', and 'Discover'
* @param boolean $formatted Set to true if the output string should contain one separator every 4 digits
* @param string $separator Separator string for formatting card number. Defaults to dash (-).
* @return string
*
* @example '4485480221084675'
*/
public static function creditCardNumber($type = null, $formatted = false, $separator = '-')
{
if (is_null($type)) {
$type = static::creditCardType();
}
$mask = static::randomElement(static::$cardParams[$type]);
$number = static::numerify($mask);
$number .= Luhn::computeCheckDigit($number);
if ($formatted) {
$p1 = substr($number, 0, 4);
$p2 = substr($number, 4, 4);
$p3 = substr($number, 8, 4);
$p4 = substr($number, 12);
$number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4;
}
return $number;
}
/**
* @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date
* @return \DateTime
* @example 04/13
*/
public function creditCardExpirationDate($valid = true)
{
if ($valid) {
return $this->generator->dateTimeBetween('now', '36 months');
}
return $this->generator->dateTimeBetween('-36 months', '36 months');
}
/**
* @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date
* @param string $expirationDateFormat
* @return string
* @example '04/13'
*/
public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null)
{
return $this->creditCardExpirationDate($valid)->format(is_null($expirationDateFormat) ? static::$expirationDateFormat : $expirationDateFormat);
}
/**
* @param boolean $valid True (by default) to get a valid expiration date, false to get a maybe valid date
* @return array
*/
public function creditCardDetails($valid = true)
{
$type = static::creditCardType();
return array(
'type' => $type,
'number' => static::creditCardNumber($type),
'name' => $this->generator->name(),
'expirationDate' => $this->creditCardExpirationDateString($valid)
);
}
/**
* International Bank Account Number (IBAN)
*
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param string $prefix for generating bank account number of a specific bank
* @param integer $length total length without country code and 2 check digits
* @return string
*/
protected static function iban($countryCode, $prefix = '', $length = null)
{
$countryCode = strtoupper($countryCode);
$format = !isset(static::$ibanFormats[$countryCode]) ? array() : static::$ibanFormats[$countryCode];
if ($length === null) {
if ($format === null) {
$length = 24;
} else {
$length = 0;
foreach ($format as $part) {
list($class, $groupCount) = $part;
$length += $groupCount;
}
}
}
$result = $prefix;
$length -= strlen($prefix);
$nextPart = array_shift($format);
if ($nextPart !== false) {
list($class, $groupCount) = $nextPart;
} else {
$class = 'n';
$groupCount = 0;
}
$groupCount = $nextPart === false ? 0 : $nextPart[1];
for ($i = 0; $i < $length; $i++) {
if ($nextPart !== false && $groupCount-- < 1) {
$nextPart = array_shift($format);
list($class, $groupCount) = $nextPart;
}
switch ($class) {
default:
case 'c':
$result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter());
break;
case 'a':
$result .= strtoupper(static::randomLetter());
break;
case 'n':
$result .= static::randomDigit();
break;
}
}
$result = static::addBankCodeChecksum($result, $countryCode);
$countryNumber = 100 * (ord($countryCode[0])-55) + (ord($countryCode[1])-55);
$tempResult = $result . $countryNumber . '00';
// perform MOD97-10 checksum calculation
$checksum = (int) $tempResult[0];
for ($i = 1, $size = strlen($tempResult); $i < $size; $i++) {
$checksum = (10 * $checksum + (int) $tempResult[$i]) % 97;
}
$checksum = 98 - $checksum;
if ($checksum < 10) {
$checksum = '0'.$checksum;
}
return $countryCode . $checksum . $result;
}
/**
* Calculates a checksum for the national bank and branch code part in the IBAN.
*
* @param string $iban randomly generated $iban
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @return string IBAN with one character altered to a proper checksum
*/
protected static function addBankCodeChecksum($iban, $countryCode = '')
{
return $iban;
}
/**
* Return the String of a SWIFT/BIC number
*
* @example 'RZTIAT22263'
* @link http://en.wikipedia.org/wiki/ISO_9362
* @return string Swift/Bic number
*/
public static function swiftBicNumber()
{
return self::regexify("^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$");
}
}

View File

@@ -0,0 +1,126 @@
<?php
namespace Faker\Provider;
class Person extends \Faker\Provider\Base
{
const GENDER_MALE = 'male';
const GENDER_FEMALE = 'female';
protected static $titleFormat = array(
'{{titleMale}}',
'{{titleFemale}}',
);
protected static $firstNameFormat = array(
'{{firstNameMale}}',
'{{firstNameFemale}}',
);
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
);
protected static $firstNameMale = array(
'John',
);
protected static $firstNameFemale = array(
'Jane',
);
protected static $lastName = array('Doe');
protected static $titleMale = array('Mr.', 'Dr.', 'Prof.');
protected static $titleFemale = array('Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.');
/**
* @param string|null $gender 'male', 'female' or null for any
* @return string
* @example 'John Doe'
*/
public function name($gender = null)
{
if ($gender === static::GENDER_MALE) {
$format = static::randomElement(static::$maleNameFormats);
} elseif ($gender === static::GENDER_FEMALE) {
$format = static::randomElement(static::$femaleNameFormats);
} else {
$format = static::randomElement(array_merge(static::$maleNameFormats, static::$femaleNameFormats));
}
return $this->generator->parse($format);
}
/**
* @param string|null $gender 'male', 'female' or null for any
* @return string
* @example 'John'
*/
public function firstName($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::firstNameMale();
} elseif ($gender === static::GENDER_FEMALE) {
return static::firstNameFemale();
}
return $this->generator->parse(static::randomElement(static::$firstNameFormat));
}
public static function firstNameMale()
{
return static::randomElement(static::$firstNameMale);
}
public static function firstNameFemale()
{
return static::randomElement(static::$firstNameFemale);
}
/**
* @example 'Doe'
* @return string
*/
public function lastName()
{
return static::randomElement(static::$lastName);
}
/**
* @example 'Mrs.'
* @param string|null $gender 'male', 'female' or null for any
* @return string
*/
public function title($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::titleMale();
} elseif ($gender === static::GENDER_FEMALE) {
return static::titleFemale();
}
return $this->generator->parse(static::randomElement(static::$titleFormat));
}
/**
* @example 'Mr.'
*/
public static function titleMale()
{
return static::randomElement(static::$titleMale);
}
/**
* @example 'Mrs.'
*/
public static function titleFemale()
{
return static::randomElement(static::$titleFemale);
}
}

View File

@@ -0,0 +1,16 @@
<?php
namespace Faker\Provider;
class PhoneNumber extends \Faker\Provider\Base
{
protected static $formats = array('###-###-###');
/**
* @example '555-123-546'
*/
public static function phoneNumber()
{
return static::numerify(static::randomElement(static::$formats));
}
}

View File

@@ -0,0 +1,137 @@
<?php
namespace Faker\Provider;
abstract class Text extends \Faker\Provider\Base
{
protected static $baseText = '';
protected static $separator = ' ';
protected static $separatorLen = 1;
protected $explodedText = null;
protected $consecutiveWords = array();
/**
* Generate a text string by the Markov chain algorithm.
*
* Depending on the $maxNbChars, returns a random valid looking text. The algorithm
* generates a weighted table with the specified number of words as the index and the
* possible following words as the value.
*
* @example 'Alice, swallowing down her flamingo, and began by taking the little golden key'
* @param integer $maxNbChars Maximum number of characters the text should contain (minimum: 10)
* @param integer $indexSize Determines how many words are considered for the generation of the next word.
* The minimum is 1, and it produces the higher level of randomness, although the
* generated text usually doesn't make sense. Higher index sizes (up to 5)
* produce more correct text, at the price of less randomness.
* @return string
*/
public function realText($maxNbChars = 200, $indexSize = 2)
{
if ($maxNbChars < 10) {
throw new \InvalidArgumentException('maxNbChars must be at least 10');
}
if ($indexSize < 1) {
throw new \InvalidArgumentException('indexSize must be at least 1');
}
if ($indexSize > 5) {
throw new \InvalidArgumentException('indexSize must be at most 5');
}
$words = $this->getConsecutiveWords($indexSize);
$result = array();
$resultLength = 0;
// take a random starting point
$next = static::randomKey($words);
while ($resultLength < $maxNbChars && isset($words[$next])) {
// fetch a random word to append
$word = static::randomElement($words[$next]);
// calculate next index
$currentWords = static::explode($next);
$currentWords[] = $word;
array_shift($currentWords);
$next = static::implode($currentWords);
// ensure text starts with an uppercase letter
if ($resultLength == 0 && !static::validStart($word)) {
continue;
}
// append the element
$result[] = $word;
$resultLength += static::strlen($word) + static::$separatorLen;
}
// remove the element that caused the text to overflow
array_pop($result);
// build result
$result = static::implode($result);
return static::appendEnd($result);
}
protected function getConsecutiveWords($indexSize)
{
if (!isset($this->consecutiveWords[$indexSize])) {
$parts = $this->getExplodedText();
$words = array();
$index = array();
for ($i = 0; $i < $indexSize; $i++) {
$index[] = array_shift($parts);
}
for ($i = 0, $count = count($parts); $i < $count; $i++) {
$stringIndex = static::implode($index);
if (!isset($words[$stringIndex])) {
$words[$stringIndex] = array();
}
$word = $parts[$i];
$words[$stringIndex][] = $word;
array_shift($index);
$index[] = $word;
}
// cache look up words for performance
$this->consecutiveWords[$indexSize] = $words;
}
return $this->consecutiveWords[$indexSize];
}
protected function getExplodedText()
{
if ($this->explodedText === null) {
$this->explodedText = static::explode(preg_replace('/\s+/u', ' ', static::$baseText));
}
return $this->explodedText;
}
protected static function explode($text)
{
return explode(static::$separator, $text);
}
protected static function implode($words)
{
return implode(static::$separator, $words);
}
protected static function strlen($text)
{
return function_exists('mb_strlen') ? mb_strlen($text, 'UTF-8') : strlen($text);
}
protected static function validStart($word)
{
return preg_match('/^\p{Lu}/u', $word);
}
protected static function appendEnd($text)
{
return $text.'.';
}
}

View File

@@ -0,0 +1,162 @@
<?php
namespace Faker\Provider;
class UserAgent extends \Faker\Provider\Base
{
protected static $userAgents = array('firefox', 'chrome', 'internetExplorer', 'opera', 'safari');
protected static $windowsPlatformTokens = array('Windows NT 6.2', 'Windows NT 6.1', 'Windows NT 6.0', 'Windows NT 5.2', 'Windows NT 5.1', 'Windows NT 5.01', 'Windows NT 5.0', 'Windows NT 4.0', 'Windows 98; Win 9x 4.90', 'Windows 98', 'Windows 95', 'Windows CE');
/**
* Possible processors on Linux
*/
protected static $linuxProcessor = array('i686', 'x86_64');
/**
* Mac processors (it also added U;)
*/
protected static $macProcessor = array('Intel', 'PPC', 'U; Intel', 'U; PPC');
/**
* Add as many languages as you like.
*/
protected static $lang = array('en-US', 'sl-SI');
/**
* Generate mac processor
*
* @return string
*/
public static function macProcessor()
{
return static::randomElement(static::$macProcessor);
}
/**
* Generate linux processor
*
* @return string
*/
public static function linuxProcessor()
{
return static::randomElement(static::$linuxProcessor);
}
/**
* Generate a random user agent
*
* @example 'Mozilla/5.0 (Windows CE) AppleWebKit/5350 (KHTML, like Gecko) Chrome/13.0.888.0 Safari/5350'
*/
public static function userAgent()
{
$userAgentName = static::randomElement(static::$userAgents);
return static::$userAgentName();
}
/**
* Generate Chrome user agent
*
* @example 'Mozilla/5.0 (Macintosh; PPC Mac OS X 10_6_5) AppleWebKit/5312 (KHTML, like Gecko) Chrome/14.0.894.0 Safari/5312'
*/
public static function chrome()
{
$saf = mt_rand(531, 536) . mt_rand(0, 2);
$platforms = array(
'(' . static::linuxPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(36, 40) . '.0.' . mt_rand(800, 899) . ".0 Mobile Safari/$saf",
'(' . static::windowsPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(36, 40) . '.0.' . mt_rand(800, 899) . ".0 Mobile Safari/$saf",
'(' . static::macPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Chrome/" . mt_rand(36, 40) . '.0.' . mt_rand(800, 899) . ".0 Mobile Safari/$saf"
);
return 'Mozilla/5.0 ' . static::randomElement($platforms);
}
/**
* Generate Firefox user agent
*
* @example 'Mozilla/5.0 (X11; Linuxi686; rv:7.0) Gecko/20101231 Firefox/3.6'
*/
public static function firefox()
{
$ver = 'Gecko/' . date('Ymd', mt_rand(strtotime('2010-1-1'), time())) . ' Firefox/' . mt_rand(35, 37) . '.0';
$platforms = array(
'(' . static::windowsPlatformToken() . '; ' . static::randomElement(static::$lang) . '; rv:1.9.' . mt_rand(0, 2) . '.20) ' . $ver,
'(' . static::linuxPlatformToken() . '; rv:' . mt_rand(5, 7) . '.0) ' . $ver,
'(' . static::macPlatformToken() . ' rv:' . mt_rand(2, 6) . '.0) ' . $ver
);
return "Mozilla/5.0 " . static::randomElement($platforms);
}
/**
* Generate Safari user agent
*
* @example 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_7_1 rv:3.0; en-US) AppleWebKit/534.11.3 (KHTML, like Gecko) Version/4.0 Safari/534.11.3'
*/
public static function safari()
{
$saf = mt_rand(531, 535) . '.' . mt_rand(1, 50) . '.' . mt_rand(1, 7);
if (mt_rand(0, 1) == 0) {
$ver = mt_rand(4, 5) . '.' . mt_rand(0, 1);
} else {
$ver = mt_rand(4, 5) . '.0.' . mt_rand(1, 5);
}
$mobileDevices = array(
'iPhone; CPU iPhone OS',
'iPad; CPU OS'
);
$platforms = array(
'(Windows; U; ' . static::windowsPlatformToken() . ") AppleWebKit/$saf (KHTML, like Gecko) Version/$ver Safari/$saf",
'(' . static::macPlatformToken() . ' rv:' . mt_rand(2, 6) . '.0; ' . static::randomElement(static::$lang) . ") AppleWebKit/$saf (KHTML, like Gecko) Version/$ver Safari/$saf",
'(' . static::randomElement($mobileDevices) . ' ' . mt_rand(7, 8) . '_' . mt_rand(0, 2) . '_' . mt_rand(1, 2) . ' like Mac OS X; ' . static::randomElement(static::$lang) . ") AppleWebKit/$saf (KHTML, like Gecko) Version/" . mt_rand(3, 4) . ".0.5 Mobile/8B" . mt_rand(111, 119) . " Safari/6$saf",
);
return "Mozilla/5.0 " . static::randomElement($platforms);
}
/**
* Generate Opera user agent
*
* @example 'Opera/8.25 (Windows NT 5.1; en-US) Presto/2.9.188 Version/10.00'
*/
public static function opera()
{
$platforms = array(
'(' . static::linuxPlatformToken() . '; ' . static::randomElement(static::$lang) . ') Presto/2.' . mt_rand(8, 12) . '.' . mt_rand(160, 355) . ' Version/' . mt_rand(10, 12) . '.00',
'(' . static::windowsPlatformToken() . '; ' . static::randomElement(static::$lang) . ') Presto/2.' . mt_rand(8, 12) . '.' . mt_rand(160, 355) . ' Version/' . mt_rand(10, 12) . '.00'
);
return "Opera/" . mt_rand(8, 9) . '.' . mt_rand(10, 99) . ' ' . static::randomElement($platforms);
}
/**
* Generate Internet Explorer user agent
*
* @example 'Mozilla/5.0 (compatible; MSIE 7.0; Windows 98; Win 9x 4.90; Trident/3.0)'
*/
public static function internetExplorer()
{
return 'Mozilla/5.0 (compatible; MSIE ' . mt_rand(5, 11) . '.0; ' . static::windowsPlatformToken() . '; Trident/' . mt_rand(3, 5) . '.' . mt_rand(0, 1) . ')';
}
public static function windowsPlatformToken()
{
return static::randomElement(static::$windowsPlatformTokens);
}
public static function macPlatformToken()
{
return 'Macintosh; ' . static::randomElement(static::$macProcessor) . ' Mac OS X 10_' . mt_rand(5, 8) . '_' . mt_rand(0, 9);
}
public static function linuxPlatformToken()
{
return 'X11; Linux ' . static::randomElement(static::$linuxProcessor);
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace Faker\Provider;
class Uuid extends \Faker\Provider\Base
{
/**
* Generate name based md5 UUID (version 3).
* @example '7e57d004-2b97-0e7a-b45f-5387367791cd'
*/
public static function uuid()
{
// fix for compatibility with 32bit architecture; seed range restricted to 62bit
$seed = mt_rand(0, 2147483647) . '#' . mt_rand(0, 2147483647);
// Hash the seed and convert to a byte array
$val = md5($seed, true);
$byte = array_values(unpack('C16', $val));
// extract fields from byte array
$tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3];
$tMi = ($byte[4] << 8) | $byte[5];
$tHi = ($byte[6] << 8) | $byte[7];
$csLo = $byte[9];
$csHi = $byte[8] & 0x3f | (1 << 7);
// correct byte order for big edian architecture
if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) {
$tLo = (($tLo & 0x000000ff) << 24) | (($tLo & 0x0000ff00) << 8)
| (($tLo & 0x00ff0000) >> 8) | (($tLo & 0xff000000) >> 24);
$tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8);
$tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8);
}
// apply version number
$tHi &= 0x0fff;
$tHi |= (3 << 12);
// cast to string
$uuid = sprintf(
'%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
$tLo,
$tMi,
$tHi,
$csHi,
$csLo,
$byte[10],
$byte[11],
$byte[12],
$byte[13],
$byte[14],
$byte[15]
);
return $uuid;
}
}

View File

@@ -0,0 +1,152 @@
<?php
namespace Faker\Provider\ar_JO;
class Address extends \Faker\Provider\Address
{
protected static $streetPrefix = array('شارع');
protected static $cityPrefix = array('شمال', 'شرق', 'غرب', 'جنوب', 'وسط', );
/**
* @link http://ar.wikipedia.org/wiki/%D9%85%D9%84%D8%AD%D9%82:%D9%82%D8%A7%D8%A6%D9%85%D8%A9_%D9%85%D8%AF%D9%86_%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%86
*/
protected static $cityName = array(
'اربد', 'أبو نصير', 'الجبيهه', 'الحصن', 'الرصيفة', 'الرمثا', 'الزرقاء', 'السلط', 'الشهيد عزمي', 'الصريح', 'الضليل', 'الطفيلة', 'العقبة', 'القويسمة', 'الكرك', 'المشارع', 'المفرق', 'الهاشمية', 'ام قصير', 'ايدون',
'بيت راس',
'تلاع العلي',
'جرش',
'ساكب', 'سحاب',
'شفا بدران',
'صويلح',
'عمان', 'عنجره', 'عين الباشا',
'غور الصافي',
'كريمه', 'كفرنجه',
'مادبا', 'مخيم البقعه', 'مخيم حطين', 'مرج الحمام', 'معان',
'ناعور',
'وادي السير',
);
protected static $buildingNumber = array('#####', '####', '##');
protected static $postcode = array('#####', '#####-####');
/**
* @link http://ar.wikipedia.org/wiki/%D9%85%D9%84%D8%AD%D9%82:%D9%82%D8%A7%D8%A6%D9%85%D8%A9_%D8%A7%D9%84%D9%88%D9%84%D8%A7%D9%8A%D8%A7%D8%AA_%D8%A7%D9%84%D8%A3%D9%85%D8%B1%D9%8A%D9%83%D9%8A%D8%A9_%D8%AD%D8%B3%D8%A8_%D8%A7%D9%84%D9%85%D8%B3%D8%A7%D8%AD%D8%A9
*/
protected static $state = array(
'آيوا', 'أركنساس', 'أريزونا', 'ألاباما', 'ألاسكا', 'أوريغون', 'أوكلاهوما', 'أوهايو', 'أيداهو', 'إلينوي', 'إنديانا', 'الاباما', 'الجزر العذراء الأمريكية',
'بنس يلفانيا', 'بورتو ريكو',
'تكساس', 'تينيسي',
'جزر ماريانا الشمالية', 'جورجيا',
'داكوتا الجنوبية', 'داكوتا الشمالية', 'ديلاوير', 'رود آيلاند',
'ساموا الأمريكية',
'غوام',
'فرجينيا الغربية', 'فلوريدا', 'فيرجينيا', 'فيرجينيا الغربية', 'فيرمونت',
'كارولاينا الجنوبية', 'كارولاينا الشمالية','كارولينا الشمالية', 'كاليفورنيا', 'كانساس', 'كنتاكي', 'كولورادو', 'كونيتيكت',
'لويزيانا',
'ماريلاند', 'ماساتشوستس', 'ماين', 'مسيسيبي', 'مونتانا', 'ميريلاند', 'ميزوري', 'ميشيغان', 'مين', 'مينيسوتا',
'نبراسكا', 'نيفادا', 'نيو جيرسي', 'نيو ميكسيكو', 'نيوهامشير', 'نيويورك',
'هاواي',
'واشنطن', 'وايومنغ', 'ويسكنسن', 'يوتا',
);
protected static $stateAbbr = array(
'AK', 'AL', 'AR', 'AZ', 'CA', 'CO', 'CT', 'DC', 'DE', 'FL', 'GA', 'HI', 'IA', 'ID', 'IL', 'IN', 'KS', 'KY', 'LA', 'MA', 'MD', 'ME', 'MI', 'MN', 'MO', 'MS', 'MT', 'NC', 'ND', 'NE', 'NH', 'NJ', 'NM', 'NV', 'NY', 'OH', 'OK', 'OR', 'PA', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VA', 'VT', 'WA', 'WI', 'WV', 'WY'
);
/**
* @link http://www.nationsonline.org/oneworld/countrynames_arabic.htm
*/
protected static $country = array(
'الكاريبي', 'أمريكا الوسطى', 'أنتيجوا وبربودا', 'أنجولا', 'أنجويلا', 'أندورا', 'اندونيسيا', 'أورجواي', 'أوروبا', 'أوزبكستان', 'أوغندا', 'أوقيانوسيا', 'أوقيانوسيا النائية', 'أوكرانيا', 'ايران', 'أيرلندا', 'أيسلندا', 'ايطاليا',
'بابوا غينيا الجديدة', 'باراجواي', 'باكستان', 'بالاو', 'بتسوانا', 'بتكايرن', 'بربادوس', 'برمودا', 'بروناي', 'بلجيكا', 'بلغاريا', 'بليز', 'بنجلاديش', 'بنما', 'بنين', 'بوتان', 'بورتوريكو', 'بوركينا فاسو', 'بوروندي', 'بولندا', 'بوليفيا', 'بولينيزيا', 'بولينيزيا الفرنسية', 'بيرو',
'تانزانيا', 'تايلند', 'تايوان', 'تركمانستان', 'تركيا', 'ترينيداد وتوباغو', 'تشاد', 'توجو', 'توفالو', 'توكيلو', 'تونجا', 'تونس', 'تيمور الشرقية',
'جامايكا', 'جبل طارق', 'جرينادا', 'جرينلاند', 'جزر الأنتيل الهولندية', 'جزر الترك وجايكوس', 'جزر القمر', 'جزر الكايمن', 'جزر المارشال', 'جزر الملديف', 'جزر الولايات المتحدة البعيدة الصغيرة', 'جزر أولان', 'جزر سليمان', 'جزر فارو', 'جزر فرجين الأمريكية', 'جزر فرجين البريطانية', 'جزر فوكلاند', 'جزر كوك', 'جزر كوكوس', 'جزر ماريانا الشمالية', 'جزر والس وفوتونا', 'جزيرة الكريسماس', 'جزيرة بوفيه', 'جزيرة مان', 'جزيرة نورفوك', 'جزيرة هيرد وماكدونالد', 'جمهورية افريقيا الوسطى', 'جمهورية التشيك', 'جمهورية الدومينيك', 'جمهورية الكونغو الديمقراطية', 'جمهورية جنوب افريقيا', 'جنوب آسيا', 'جنوب أوروبا', 'جنوب شرق آسيا', 'جنوب وسط آسيا', 'جواتيمالا', 'جوادلوب', 'جوام', 'جورجيا', 'جورجيا الجنوبية وجزر ساندويتش الجنوبية', 'جيبوتي', 'جيرسي',
'دومينيكا',
'رواندا', 'روسيا', 'روسيا البيضاء', 'رومانيا', 'روينيون',
'زامبيا', 'زيمبابوي',
'ساحل العاج', 'ساموا', 'ساموا الأمريكية', 'سانت بيير وميكولون', 'سانت فنسنت وغرنادين', 'سانت كيتس ونيفيس', 'سانت لوسيا', 'سانت مارتين', 'سانت هيلنا', 'سان مارينو', 'ساو تومي وبرينسيبي', 'سريلانكا', 'سفالبارد وجان مايان', 'سلوفاكيا', 'سلوفينيا', 'سنغافورة', 'سوازيلاند', 'سوريا', 'سورينام', 'سويسرا', 'سيراليون', 'سيشل',
'شرق آسيا', 'شرق افريقيا', 'شرق أوروبا', 'شمال افريقيا', 'شمال أمريكا', 'شمال أوروبا', 'شيلي',
'صربيا', 'صربيا والجبل الأسود',
'طاجكستان',
'عمان',
'غامبيا', 'غانا', 'غرب آسيا', 'غرب افريقيا', 'غرب أوروبا', 'غويانا', 'غيانا', 'غينيا', 'غينيا الاستوائية', 'غينيا بيساو',
'فانواتو', 'فرنسا', 'فلسطين', 'فنزويلا', 'فنلندا', 'فيتنام', 'فيجي',
'قبرص', 'قرغيزستان', 'قطر',
'كازاخستان', 'كاليدونيا الجديدة', 'كرواتيا', 'كمبوديا', 'كندا', 'كوبا', 'كوريا الجنوبية', 'كوريا الشمالية', 'كوستاريكا', 'كولومبيا', 'كومنولث الدول المستقلة', 'كيريباتي', 'كينيا',
'لاتفيا', 'لاوس', 'لبنان', 'لوكسمبورج', 'ليبيا', 'ليبيريا', 'ليتوانيا', 'ليختنشتاين', 'ليسوتو',
'مارتينيك', 'ماكاو الصينية', 'مالطا', 'مالي', 'ماليزيا', 'مايوت', 'مدغشقر', 'مصر', 'مقدونيا', 'ملاوي', 'منغوليا', 'موريتانيا', 'موريشيوس', 'موزمبيق', 'مولدافيا', 'موناكو', 'مونتسرات', 'ميانمار', 'ميكرونيزيا', 'ميلانيزيا',
'ناميبيا', 'نورو', 'نيبال', 'نيجيريا', 'نيكاراجوا', 'نيوزيلاندا', 'نيوي',
'هايتي', 'هندوراس', 'هولندا', 'هونج كونج الصينية',
'وسط آسيا', 'وسط افريقيا',
);
protected static $cityFormats = array(
'{{cityPrefix}} {{cityName}}',
'{{cityName}}',
);
protected static $streetNameFormats = array(
'{{streetPrefix}} {{firstName}} {{lastName}}',
);
protected static $streetAddressFormats = array(
'{{buildingNumber}} {{streetName}}',
'{{buildingNumber}} {{streetName}} {{secondaryAddress}}',
);
protected static $addressFormats = array(
"{{streetAddress}}\n{{city}}",
);
protected static $secondaryAddressFormats = array('شقة رقم. ##', 'بناية رقم ##');
/**
* @example 'شرق'
*/
public static function cityPrefix()
{
return static::randomElement(static::$cityPrefix);
}
/**
* @example 'عمان'
*/
public static function cityName()
{
return static::randomElement(static::$cityName);
}
/**
* @example 'شارع'
*/
public static function streetPrefix()
{
return static::randomElement(static::$streetPrefix);
}
/**
* @example 'شقة رقم. 350'
*/
public static function secondaryAddress()
{
return static::numerify(static::randomElement(static::$secondaryAddressFormats));
}
/**
* @example 'كاليفورنيا'
*/
public static function state()
{
return static::randomElement(static::$state);
}
/**
* @example 'CA'
*/
public static function stateAbbr()
{
return static::randomElement(static::$stateAbbr);
}
}

View File

@@ -0,0 +1,63 @@
<?php
namespace Faker\Provider\ar_JO;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
'{{companyPrefix}} {{lastName}} {{companySuffix}}',
'{{companyPrefix}} {{lastName}}',
);
protected static $bsWords = array(
array()
);
protected static $catchPhraseWords = array(
array('الخدمات','الحلول','الانظمة'),
array(
'الذهبية','الذكية','المتطورة','المتقدمة', 'الدولية', 'المتخصصه', 'السريعة',
'المثلى', 'الابداعية', 'المتكاملة', 'المتغيرة', 'المثالية'
),
);
protected static $companyPrefix = array('شركة','مؤسسة','مجموعة','مكتب','أكاديمية','معرض');
protected static $companySuffix = array('وأولاده', 'للمساهمة المحدودة', ' ذ.م.م', 'مساهمة عامة', 'وشركائه');
/**
* @example 'مؤسسة'
* @return string
*/
public function companyPrefix()
{
return static::randomElement(self::$companyPrefix);
}
/**
* @example 'Robust full-range hub'
*/
public function catchPhrase()
{
$result = array();
foreach (static::$catchPhraseWords as &$word) {
$result[] = static::randomElement($word);
}
return join($result, ' ');
}
/**
* @example 'integrate extensible convergence'
*/
public function bs()
{
$result = array();
foreach (static::$bsWords as &$word) {
$result[] = static::randomElement($word);
}
return join($result, ' ');
}
}

View File

@@ -0,0 +1,55 @@
<?php
namespace Faker\Provider\ar_JO;
class Internet extends \Faker\Provider\Internet
{
protected static $userNameFormats = array(
'{{lastNameAscii}}.{{firstNameAscii}}',
'{{firstNameAscii}}.{{lastNameAscii}}',
'{{firstNameAscii}}##',
'?{{lastNameAscii}}',
);
protected static $safeEmailTld = array(
'com', 'jo', 'me', 'net', 'org',
);
protected static $tld = array(
'biz', 'com', 'info', 'jo', 'net', 'org',
);
protected static $lastNameAscii = array(
'abbad', 'abbadi', 'abbas', 'abulebbeh', 'flefel', 'hadi', 'hamad', 'hasan', 'jabri', 'kanaan', 'karam', 'maanee', 'melhem', 'nimry', 'obaisi', 'qasem', 'qawasmee', 'rabee', 'rashwani', 'shami', 'zaloum',
);
protected static $firstNameAscii = array(
'abd', 'abdullah', 'ahmad', 'akram', 'amr', 'bashar', 'bilal', 'fadi', 'ibrahim', 'khaled', 'layth', 'mohammad', 'mutaz', 'omar', 'osama', 'rami', 'saleem', 'samer', 'sami', 'yazan',
);
public static function lastNameAscii()
{
return static::randomElement(static::$lastNameAscii);
}
public static function firstNameAscii()
{
return static::randomElement(static::$firstNameAscii);
}
/**
* @example 'ahmad.abbadi'
*/
public function userName()
{
$format = static::randomElement(static::$userNameFormats);
return static::bothify($this->generator->parse($format));
}
/**
* @example 'wewebit.jo'
*/
public function domainName()
{
return static::randomElement(static::$lastNameAscii) . '.' . $this->tld();
}
}

View File

@@ -0,0 +1,108 @@
<?php
namespace Faker\Provider\ar_JO;
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{titleMale}} {{firstNameMale}} {{lastName}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
);
/**
* @link http://muslim-names.us/
*/
protected static $firstNameMale = array(
'آدم', 'أبراهيم', 'أبو بكر', 'أحمد', 'أدهم', 'أسامة', 'أسعد', 'أسيد', 'أشرف', 'أكثم', 'أكرم', 'أمجد', 'أمين', 'أنتوني', 'أنزور', 'أنس', 'أنمار', 'أنور', 'أواس', 'أوس', 'أيمن', 'أيهم', 'أيوب', 'إبراهيم', 'إسلام', 'إسماعيل', 'إلياس', 'إياد', 'إيهاب', 'ابان', 'ابراهام', 'ابراهيم', 'ابراهيم محمد', 'اثير', 'احسان', 'احمد', 'ادريس', 'ادم', 'ادهم', 'اديب', 'ارام', 'ازاد', 'ازد', 'اسامة', 'اسحاق', 'اسحق', 'اسعد', 'اسلام', 'اسماعيل', 'اسيد', 'اشراف', 'اشرف', 'اصلان', 'اكثم', 'اكرم', 'البراء', 'البشر', 'البطوش', 'الحارث', 'الحسين', 'الحمزه', 'الطفيل', 'العزم', 'الليث', 'المؤمن بالله', 'المثنى', 'المستبد', 'المعتز', 'المعتز بالله', 'المعتصم بالله', 'المنتصر بالله', 'المنصور', 'الياس', 'اليمان', 'امجد', 'امل', 'امير', 'امين', 'اندرو', 'انس', 'انور', 'انيس', 'اوس', 'اوسم', 'اوهان', 'اويس', 'اياد', 'اياد الدين', 'اياس', 'ايسر', 'ايليا', 'ايمن', 'ايهاب', 'ايهم', 'ايوب',
'باجس', 'باسل', 'باسم', 'باندي', 'باهر', 'بدر', 'بدوان', 'براء', 'برنابا', 'برهان', 'بسام', 'بشار', 'بشارة', 'بشر', 'بشير', 'بطرس', 'بكر', 'بلال', 'بليغ', 'بندر', 'بهاء', 'بهاء الدين', 'بيتر',
'تامر', 'تحسين', 'تركي', 'تشارلي', 'تقي الدين', 'توفيق', 'تيسير', 'تيمور',
'ثائر', 'ثامر',
'جابر', 'جاد', 'جاسر', 'جاسم', 'جاك', 'جباغ', 'جبر', 'جبرائي', 'جبير', 'جراح', 'جريس', 'جعفر', 'جلال', 'جلال الدين', 'جمال', 'جمزه', 'جميل', 'جهاد', 'جواد', 'جودت', 'جورج', 'جوزيف',
'حابس', 'حاتم', 'حارث', 'حارثه', 'حازم', 'حازم محمد', 'حافظ', 'حاكم', 'حالد', 'حامد', 'حبيب', 'حذيفة', 'حذيفه', 'حسام', 'حسام الدين', 'حسان', 'حسن', 'حسني', 'حسين', 'حكم', 'حكمت', 'حلمي', 'حماده', 'حمد', 'حمدالله', 'حمدان', 'حمدي', 'حمزة', 'حمزه', 'حمود', 'حمودة', 'حموده', 'حميد', 'حنا', 'خالد',
'خضر', 'خلدون', 'خلف', 'خليفة', 'خليفه', 'خليل', 'خميس', 'خير الدين', 'خيرالله', 'خيري',
'دانتي', 'داني', 'دانيال', 'داود', 'داوود',
'ذياب', 'ذيب',
'رأفت', 'رؤوف', 'رئاد', 'رائد', 'رائف', 'راجح', 'راجي', 'راشد', 'راضي', 'راغب', 'رافت', 'رافع', 'رافي', 'راكان', 'رامان', 'رامز', 'رامي', 'رامين', 'ربيع', 'رجا', 'رجائي', 'رجب', 'رداد', 'رزق', 'رسلان', 'رسلان الدين', 'رشاد', 'رشبد', 'رشيد', 'رضا', 'رضوان', 'رعد', 'رغد', 'رغيد', 'ركان', 'رماح', 'رمزي', 'رمضان', 'رهاب', 'رواد', 'روحي', 'روزا', 'روني', 'رياض', 'ريان', 'ريتشارد', 'ريمون',
'زاهر', 'زاهي', 'زايد', 'زبد', 'زخريا', 'زكريا', 'زكي', 'زمام', 'زهدي', 'زهير', 'زياد', 'زيد', 'زيدان', 'زيدون', 'زين', 'زين العابدين', 'سائد', 'سابا', 'ساري', 'سالم', 'سامح', 'سامر', 'سامي', 'ساهر', 'سدير', 'سركيس', 'سرمد', 'سري', 'سعد', 'سعدي', 'سعود', 'سعيد', 'سفيان', 'سكوت', 'سلام', 'سلطان', 'سلمان', 'سليم', 'سليمان', 'سمؤل', 'سمعان', 'سميح', 'سمير', 'سنان', 'سند', 'سهام الدين', 'سهل', 'سهم', 'سيف', 'سيف الاسلام', 'سيف الدين', 'سيمون',
'شادي', 'شارلي', 'شافع', 'شاكر', 'شامان', 'شامل', 'شاهر', 'شحادة', 'شحاده', 'شربف', 'شرحبيل', 'شريف', 'شكري', 'شهاب', 'شهم', 'شوان', 'شوقي', 'شوكت',
'صادق', 'صافي', 'صالح', 'صبحي', 'صبره', 'صبري', 'صخر', 'صدام', 'صدقي', 'صفاء', 'صفوان', 'صقر', 'صلاح', 'صلاح الدين', 'صليبا', 'صهيب',
'ضرار', 'ضرغام', 'ضياء', 'ضياء الدين',
'طارق', 'طالب', 'طاهر', 'طلال', 'طه',
'عادل', 'عاصم', 'عاطف', 'عامر', 'عايد', 'عبادة', 'عباده', 'عباس', 'عبد', 'عبد الباري', 'عبد الحافظ', 'عبد الحكيم', 'عبد الحليم', 'عبد الحميد', 'عبد الحي', 'عبد الرحمان', 'عبد الرحمن', 'عبد الرحيم', 'عبد الرزاق', 'عبد السلام', 'عبد السميع', 'عبد العزيز', 'عبد العفو', 'عبد الغني', 'عبد الفتاح', 'عبد القادر', 'عبد الكريم', 'عبد اللطيف', 'عبد الله', 'عبد المجيد', 'عبد المولى', 'عبد الناصر', 'عبد الهادي', 'عبد ربه', 'عبداالله', 'عبدالاله', 'عبدالباسط', 'عبدالجليل', 'عبدالجواد', 'عبدالحليم', 'عبدالحميد', 'عبدالرؤوف', 'عبدالرحمن', 'عبدالرحيم', 'عبدالرزاق', 'عبدالسلام', 'عبدالعزيز', 'عبدالفتاح', 'عبدالقادر', 'عبدالكريم', 'عبداللطيف', 'عبدالله', 'عبدالمجيد', 'عبدالمطلب', 'عبدالمعطي', 'عبدالمهيمن', 'عبدالناصر', 'عبدالهادي', 'عبدالوهاب', 'عبدربه', 'عبده', 'عبود', 'عبيدالله', 'عبيدة', 'عتيبه', 'عثمان', 'عدب', 'عدلي', 'عدنان', 'عدوان', 'عدى', 'عدي', 'عرار', 'عربي', 'عرفات', 'عرفة', 'عرمان', 'عروة', 'عريق', 'عرين', 'عز الدين', 'عزالدين', 'عزام', 'عزت', 'عزمي', 'عزيز', 'عصام', 'عصمت', 'عطا', 'عطاالله', 'عطيه', 'عقل', 'علاء', 'علاء الدين', 'علي', 'عليان', 'عماد', 'عماد الدين', 'عمادالدين', 'عمار', 'عمر', 'عمراسامة', 'عمران', 'عمرو', 'عملا', 'عميد', 'عناد', 'عنان', 'عواد', 'عودة', 'عوده', 'عوض', 'عوف', 'عون', 'عوني', 'عيد', 'عيدالله', 'عيسى',
'غازي', 'غالب', 'غانم', 'غدير', 'غسان', 'غيث',
'فؤاد', 'فؤاس', 'فائق', 'فاخر', 'فادي', 'فارس', 'فاروق', 'فاضل', 'فايز', 'فتحي', 'فجر', 'فخرى', 'فخري', 'فرأس', 'فراس', 'فرح', 'فريد', 'فكتور', 'فلاح', 'فندي', 'فهد', 'فهمي', 'فواز', 'فوزي', 'فيصل', 'فيليب',
'قارس', 'قاسم', 'قبلان', 'قتاده', 'قتيبة', 'قتيبه', 'قصي', 'قيس',
'كاسترو', 'كاظم', 'كامل', 'كايد', 'كرم', 'كريم', 'كفاح', 'كمال', 'كنان',
'لؤي', 'لؤي الدين', 'لبيب', 'لطف', 'لطفي', 'لورنس', 'لويس', 'ليث', 'ليث الدين', 'ليليان',
'مأمون', 'مؤتمن', 'مؤثر', 'مؤمن', 'مؤنس', 'مؤيد', 'ماجد', 'مارتن', 'مارسيل', 'مازن', 'مالك', 'مامون', 'ماهر', 'مبارك', 'مثنى', 'مجاهد', 'مجد', 'مجدي', 'مجمد', 'محسن', 'محمد‏ ', 'محمود', 'محي', 'محي الدين', 'مختار', 'مخلص', 'مدحت', 'مدين', 'مراد', 'مرشد', 'مرهف', 'مروان', 'مسعد', 'مسعود', 'مسلم', 'مشاري', 'مشعل', 'مشهور', 'مشيل', 'مصباح', 'مصطغى', 'مصطفى', 'مصطفي', 'مصطلفى', 'مصعب', 'مضر', 'مطيع', 'مظفر', 'مظهر', 'معاد', 'معاذ', 'معاوية', 'معاويه', 'معتز', 'معتصم', 'معمر', 'معن', 'معنصم', 'معويه', 'معين', 'مفدي', 'مفلح', 'مقداد', 'مكين', 'ملهم', 'ممدوح', 'مناف', 'منتصر', 'منح', 'منذر', 'منصف', 'منصور', 'منقذ', 'منير', 'مهاب', 'مهدي', 'مهران', 'مهند', 'موسى', 'موفق', 'مياس', 'ميسم', 'ميشيل', 'ميلاد', 'مينا',
'نائل', 'ناجي', 'نادر', 'نارت', 'ناصر', 'ناهض', 'نايف', 'نبراس', 'نبيل', 'نتانت', 'نجاتي', 'نجيب', 'نديم', 'نزار', 'نزال', 'نزيه', 'نسيم', 'نشات', 'نصار', 'نصر', 'نصري', 'نصوح', 'نضال', 'نظام', 'نعمان', 'نعمة', 'نعيم', 'نقولا', 'نمر', 'نهاد', 'نهار', 'نواف', 'نور', 'نور الدين', 'نورالدين', 'نورس', 'نوفان',
'هادي', 'هارون', 'هاشم', 'هاكان', 'هانى', 'هاني', 'هذال', 'هشام', 'هلال', 'همام', 'هملر', 'هناء', 'هيثم',
'وائل', 'واثق', 'واصف', 'وجدي', 'وجيه', 'وحيد', 'وديع', 'ورد', 'وسام', 'وسام الدين', 'وسن', 'وسيم', 'وصفي', 'وضاح', 'وعد', 'وفاء', 'وليد', 'وهيب',
'ياسر', 'ياسين', 'يامن', 'يحيى', 'يزن', 'يزيد', 'يسار', 'يشار', 'يعرب', 'يعقوب', 'يمان', 'ينال', 'يوسف', 'يونس',
);
/**
* @link http://muslim-names.us/
*/
protected static $firstNameFemale = array(
'آثار', 'آلاء', 'آناء', 'آية', 'أبرار', 'أحلام', 'أروى', 'أريج', 'أسماء', 'أسيل', 'أصاله', 'أفنان', 'ألاء', 'أماني', 'أمل', 'أميرة', 'أنسام', 'أنطوانيت', 'أنوار', 'أيات', 'أية', 'أيناس', 'أيه', 'ؤقهسفغ', 'إباء', 'إخلاص', 'إسراء', 'إسلام', 'إكرام', 'إنعام', 'إيمان', 'إيناس', 'ابتهاج', 'ابتهال', 'ابرار', 'ابراهيم', 'اتيان', 'احسان', 'احلام', 'احمد', 'اخلاص', 'ارجوان', 'اروى', 'اريج', 'ازهار', 'اسامة', 'اسحار', 'اسرا', 'اسراء', 'اسرار', 'اسلام', 'اسما', 'اسماء', 'اسمهان', 'اسمى', 'اسيل', 'اشراق', 'اصالة', 'اعتدال', 'افراح', 'افنان', 'افيا', 'اكرام', 'الاء', 'العنود', 'الهام', 'اليان', 'اليزابيث', 'امال', 'اماندا', 'اماني', 'امل', 'امنه', 'اميرة', 'اميليا', 'امينة', 'اناهيد', 'انتظار', 'انجليكا', 'انعام', 'انوار', 'اويس', 'ايات', 'ايام', 'اية', 'ايفا', 'ايفان', 'ايفون', 'ايمان', 'ايناس', 'ايه',
'باسمة', 'باميلا', 'بان', 'بانا', 'بتول', 'بثينه', 'بدور', 'براء', 'براءة', 'برديس', 'بروين', 'بسمة', 'بشائر', 'بشرى', 'بلسم', 'بلقيس', 'بنان', 'بهجه', 'بيا', 'بيان', 'بيداء', 'بيسان',
'تالا', 'تالة', 'تالين', 'تامر', 'تانيا ماريا', 'تحرير', 'تسنيم', 'تغريد', 'تقوى', 'تقى', 'تمارا', 'تماضر', 'تمام', 'تهاني', 'تولين',
'ثريا',
'جاسمن', 'جالا', 'جلنار', 'جمانا', 'جمانة', 'جميلة', 'جنى', 'جهاد', 'جوانا', 'جود', 'جورجيت', 'جوسيت', 'جولييت', 'جيانا', 'جيسيكا',
'حبيبة', 'حسناء', 'حصه', 'حلا', 'حليمة', 'حنان', 'حنين', 'حياة',
'ختام', 'خديجه', 'خلود', 'خولة',
'دارين', 'داليا', 'دالية', 'دانا', 'دانا كريستيل جميلة', 'دانة', 'دانية', 'دانييل', 'دبنا', 'دعاء', 'دعد', 'دلال', 'دنى', 'دنيا', 'دولا', 'ديالا', 'ديان', 'ديانا', 'ديما', 'دينا',
'رؤى', 'رؤيه', 'رابعة', 'راغدة', 'راما', 'رانا', 'راندي', 'رانيا', 'راوية', 'راية', 'ربا', 'رباب', 'ربى', 'رجاء', 'رحمة', 'رحمه', 'ردينة', 'رزان', 'رشا', 'رغد', 'رغدة', 'رفاعية', 'رفاه', 'رقية', 'رقيه', 'رلى', 'رمال', 'رنا', 'رناد', 'رند', 'رنده', 'رنيم', 'رنين', 'رهام', 'رهف', 'رواء', 'روان', 'روبينا', 'روتانا', 'روحية', 'رودا', 'روزان', 'روزانا', 'روزين', 'رولى', 'روند', 'رويدة', 'ريان', 'ريتا', 'ريم', 'ريما', 'ريمان', 'ريناتا', 'ريناد', 'ريهام',
'زكية', 'زمان', 'زها', 'زهرة', 'زين', 'زينا', 'زينات', 'زينب', 'زينة', 'ساجدة', 'ساجده', 'سارة', 'سارين', 'سالي', 'ساندرا', 'ساندي', 'سباتا', 'سجى', 'سحر', 'سدين', 'سرى', 'سرين', 'سعاد', 'سكينة', 'سلام', 'سلسبيل', 'سلمى', 'سلوى', 'سما', 'سماح', 'سماره', 'سمر', 'سمية', 'سميره', 'سميه', 'سناء', 'سنابل', 'سندس', 'سنريت', 'سنن', 'سها', 'سهاد', 'سهام', 'سهر', 'سهى', 'سهير', 'سهيله', 'سوار', 'سوزان', 'سوزانا', 'سوسن', 'سيرين', 'سيرينا', 'سيلفا', 'سيلين', 'سيما',
'شدى', 'شذا', 'شذى', 'شروق', 'شريفة', 'شرين', 'شريهان', 'شفاء', 'شهد', 'شهناز', 'شيرين', 'شيماء',
'صابرين', 'صالح', 'صبا', 'صباح', 'صباحت', 'صبرين', 'صحر', 'صفا', 'صفاء', 'صفية', 'صمود',
'ضحى', 'ضياء',
'عائشة', 'عاليا', 'عالية', 'عايشة', 'عبلة', 'عبير', 'عدله', 'عرين', 'عزة', 'عزيزة', 'عفاف', 'علا', 'علياء', 'عنود', 'عهد',
'غادة', 'غدير', 'غرام', 'غزل', 'غصون', 'غفران', 'غنى', 'غيد', 'غيداء', 'غيده', 'غيفار',
'فاتن', 'فادية', 'فاديه', 'فاطمة', 'فايزة', 'فتحية', 'فتحيه', 'فتنه', 'فداء', 'فدوى', 'فدى', 'فرح', 'فريال', 'فريدة', 'فوزية', 'فيروز', 'فيفيان',
'قمر',
'كاترين', 'كاتيا', 'كارلا', 'كرستينا', 'كريستين', 'كريستينا', 'كلوديت', 'كلودين', 'كوثر', 'كيان',
'لارا', 'لاري', 'لانا', 'لبنا', 'لجين', 'لطيفة', 'لمى', 'لميس', 'لنا', 'لورا', 'لورينا', 'لوسانا', 'لوسينا', 'لونا', 'ليان', 'ليدا', 'ليلى', 'ليليان', 'لين', 'لينا', 'لينة', 'ليندا', 'لينه',
'مادلين', 'ماري', 'ماريا', 'ماريان', 'مارينا', 'مايا', 'مجد', 'مجدولين', 'محبوبة', 'مديحة', 'مرام', 'مرح', 'مروة', 'مريام', 'مريانا', 'مريم', 'مسعدة', 'مشيرة', 'معالي', 'ملاك', 'ملك', 'منار', 'منال', 'منى', 'مها', 'مهتاب', 'مي', 'ميادة', 'مياده', 'ميار', 'ميان', 'ميرا', 'ميرال', 'ميران', 'ميرفت', 'ميرنا', 'ميريت', 'ميس', 'ميسا', 'ميساء', 'ميسر', 'ميسره', 'ميسم', 'ميسون', 'ميلاء', 'ميناس',
'نائله', 'ناتاشا', 'ناتالي', 'ناديا', 'نادية', 'نادين', 'ناديه', 'ناردين', 'ناريمان', 'نانسي', 'نبال', 'نبراس', 'نبيله', 'نجاة', 'نجاح', 'نجلاء', 'نجوان', 'نجود', 'نجوى', 'نداء', 'ندى', 'ندين', 'نرمين', 'نزميه', 'نسرين', 'نسيمة', 'نعمت', 'نعمه', 'نهاد', 'نهى', 'نهيدة', 'نوال', 'نور', 'نور الهدى', 'نورا', 'نوران', 'نيروز', 'نيفين',
'هادلين', 'هازار', 'هالة', 'هانيا', 'هايدي', 'هبة', 'هدايه', 'هدى', 'هديل', 'هزار', 'هلا', 'هلين', 'هنا', 'هناء', 'هنادا', 'هنادي', 'هند', 'هيا', 'هيفا', 'هيفاء', 'هيلين',
'وئام', 'وجدان', 'وداد', 'ورود', 'وسام', 'وسن', 'وسيم', 'وعد', 'وفاء', 'ولاء',
'ىمنة', 'يارا', 'ياسمين', 'يافا', 'يسرى', 'ينان', 'ﻟﻮﺗﺸﻴﺎ',
);
protected static $lastName = array(
'آلهامي', 'أبو الرب', 'ابو رحمة', 'ابو سعده', 'ابو يوسف', 'ابوالحاج', 'الامام', 'البتراء', 'البلبيسي', 'الترابين', 'التلهوني', 'الجبارات', 'الجرَّاح', 'الجوابره', 'الجوالدة', 'الحجايا', 'الحوراني', 'الدعجة', 'الردايدة', 'الرشدان', 'الرفاعي', 'الروابدة', 'الروسان', 'الريماوي', 'الزعبية', 'الزوربا', 'السحاقات', 'السحيمات', 'السراج', 'السعد', 'السلطية', 'السيوف', 'الشامي', 'الشريدة', 'الشريف', 'الشطناوي', 'الشمالي', 'الصرايرة', 'الصمادي', 'الصنات', 'الضمور', 'الطباع', 'الطراونة', 'الطويسات', 'الطويل', 'العدوان', 'العضيبات', 'العلامي', 'العمري', 'العمرية', 'العناسوة', 'العنانبه', 'الغريب', 'الفاخوري', 'الفاعوري', 'الفناطسة', 'القطيشات', 'الكردي', 'الكركي', 'المبيضين', 'المجالي', 'المحاميد', 'المساعيد', 'المشاهره', 'المصري', 'المعشر', 'المواجدة', 'المومنى', 'المومنية', 'النسور', 'النشاشيبي', 'النعيمات', 'الهلسة', 'الوشاح',
'بني حسن', 'بني صقر',
'سحاب',
'شمر',
'ضميدات',
'طلفاح',
'عابدين', 'عباد', 'عجلون', 'عقلة', 'عناسوة',
'مطير', 'معاني',
'وادي',
);
protected static $titleMale = array('السيد', 'الأستاذ', 'الدكتور', 'المهندس');
protected static $titleFemale = array('السيدة', 'الآنسة', 'الدكتورة', 'المهندسة');
private static $prefix = array('أ.', 'د.', 'أ.د', 'م.');
/**
* @example 'أ.'
*/
public static function prefix()
{
return static::randomElement(static::$prefix);
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
<?php
namespace Faker\Provider\at_AT;
/**
* Class Payment
*
* @package Faker\Provider\at_AT
*/
class Payment extends \Faker\Provider\Payment
{
/**
* Value Added Tax (VAT)
*
* @example 'ATU12345678', ('spaced') 'AT U12345678'
*
* @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
* @see http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
* @see http://en.wikipedia.org/wiki/VAT_identification_number
*
* @param bool $spacedNationalPrefix
*
* @return string VAT Number
*/
public static function vat($spacedNationalPrefix = true)
{
$prefix = ($spacedNationalPrefix) ? "AT U" : "ATU";
return sprintf("%s%d", $prefix, self::randomNumber(8, true));
}
}

View File

@@ -0,0 +1,31 @@
<?php
namespace Faker\Provider\be_BE;
/**
* Class Payment
*
* @package Faker\Provider\be_BE
*/
class Payment extends \Faker\Provider\Payment
{
/**
* Value Added Tax (VAT)
*
* @example 'BE0123456789', ('spaced') 'BE 0123456789'
*
* @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
* @see http://www.iecomputersystems.com/ordering/eu_vat_numbers.htm
* @see http://en.wikipedia.org/wiki/VAT_identification_number
*
* @param bool $spacedNationalPrefix
*
* @return string VAT Number
*/
public static function vat($spacedNationalPrefix = true)
{
$prefix = ($spacedNationalPrefix) ? "BE " : "BE";
return sprintf("%s0%d", $prefix, self::randomNumber(9, true));
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\bg_BG;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'mail.bg', 'abv.bg', 'dir.bg');
protected static $tld = array('bg', 'bg', 'bg', 'bg', 'bg', 'bg', 'com', 'biz', 'info', 'net', 'org');
}

View File

@@ -0,0 +1,43 @@
<?php
namespace Faker\Provider\bg_BG;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'BG', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
/**
* Value Added Tax (VAT)
*
* @example 'BG1234567890', ('spaced') 'BG 1234567890'
*
* @see http://ec.europa.eu/taxation_customs/vies/faq.html?locale=en#item_11
* @see http://en.wikipedia.org/wiki/VAT_identification_number
*
* @param bool $spacedNationalPrefix
*
* @return string VAT Number
*/
public static function vat($spacedNationalPrefix = true)
{
$prefix = ($spacedNationalPrefix) ? "BG " : "BG";
return sprintf(
"%s%d%d",
$prefix,
self::randomNumber(5, true), // workaround for mt_getrandmax() limitation
self::randomNumber(self::randomElement(array(4, 5)), true)
);
}
}

View File

@@ -0,0 +1,114 @@
<?php
namespace Faker\Provider\bg_BG;
class Person extends \Faker\Provider\Person
{
protected static $lastNameFormat = array(
'{{lastNameMale}}',
'{{lastNameFemale}}',
);
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{titleMale}} {{firstNameMale}} {{lastNameMale}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{titleFemale}} {{firstNameFemale}} {{lastNameFemale}}'
);
protected static $firstNameMale = array(
'Абен', 'Аблен', 'Август', 'Августиан', 'Августин', 'Авел', 'Авер', 'Аверно', 'Авксентий', 'Аво', 'Авраам', 'Аврам', 'Аврели', 'Аврелий', 'Аврор', 'Агапи', 'Агапий', 'Агатопод', 'Агент', 'Аглай', 'Аглар', 'Агнен', 'Агнеш', 'Агоп', 'Агъци', 'Адалберт', 'Адам', 'Адеан', 'Аделин', 'Адем', 'Аднан', 'Адриан', 'Адриян', 'Аерозол', 'Азалия', 'Айдемир', 'Акашия', 'Аксакусти', 'Аксидан', 'Аксинтия', 'Албен', 'Алберт', 'Албияна', 'Алдин', 'Алевандър', 'Алег', 'Алек', 'Алекзандриян',
'Беримир', 'Берин', 'Берислав', 'Берия', 'Беро', 'Берослав', 'Бетина', 'Бетино', 'Бечо', 'Билян', 'Бинко', 'Биньо', 'Биню', 'Бисенти', 'Бисер', 'Благо', 'Благовест', 'Благой', 'Благомир', 'Благосвет', 'Блаже', 'Бог', 'Богдан', 'Богиня', 'Богой', 'Боголюб', 'Богомил', 'Богослав', 'Бодромир', 'Божан', 'Божидар', 'Божик', 'Божил', 'Божимир', 'Божин', 'Божинел', 'Божко', 'Божо', 'Божур', 'Боил', 'Боила', 'Бойко', 'Бойо', 'Бойчо', 'Болен', 'Болеслав', 'Боне', 'Бонислав', 'Бонко', 'Боно',
'Веселин', 'Весислав', 'Веско', 'Весо', 'Веспасиян', 'Ветко', 'Вечко', 'Вигалот', 'Виго', 'Виделин', 'Виден', 'Видин', 'Видол', 'Видослав', 'Видю', 'Викенти', 'Виктор', 'Вилиан', 'Вилизар', 'Вилизара', 'Вилислав', 'Вилиян', 'Вилям', 'Винету', 'Винко', 'Вино', 'Винсънт', 'Винченцо', 'Виолет', 'Виолин', 'Висарион', 'Виталий', 'Витан', 'Витко', 'Витлян', 'Витомир', 'Витош', 'Вихрен', 'Вихрони', 'Вихър', 'Вичо', 'Виша', 'Вишан', 'Вишетин', 'Вишню', 'Влад', 'Владилен', 'Владимер', 'Владимир',
'Галентин', 'Галиен', 'Галимир', 'Галин', 'Галиян', 'Гани', 'Ганислав', 'Ганцомир', 'Ганчо', 'Ганьо', 'Гаро', 'Гатьо', 'Гацо', 'Гачо', 'Гвардиана', 'Гелемир', 'Генади', 'Генади Валериев', 'Генадий', 'Генислав', 'Генко', 'Гено', 'Генчо', 'Геньо', 'Гео', 'Геодим', 'Геомил', 'Георги', 'Герасим', 'Герган', 'Гергей', 'Гергелюб', 'Гергин', 'Герго', 'Гердан', 'Герман', 'Геро', 'Герой', 'Герчо', 'Гетислав', 'Гетко', 'Гето', 'Гецо', 'Гечко', 'Гечо', 'Гешо', 'Гивеза', 'Гиздален', 'Гико', 'Гилдрой',
'Делчо', 'Делян', 'Деляна', 'Демин', 'Демир', 'Демян', 'Дениз', 'Деника', 'Денимир', 'Денис', 'Денислав', 'Дениян', 'Денчо', 'Деньо', 'Дердидас', 'десилиан', 'Десимир', 'Десислав', 'Деслав', 'Деспин', 'Деспинка', 'Деспот', 'Детелин', 'Детелюб', 'Дечко', 'Дечо', 'Дечю', 'Дешо', 'Деян', 'Джанер', 'Джанко', 'Джихад', 'Джон-стефан', 'Джулиен', 'Диаманди', 'Диамантина', 'Диан', 'Диван (на дядо Диан и дядо Иван)', 'Дивизие', 'Дивизия', 'Дивил', 'Дидко', 'Диего', 'Дийвид', 'Дико', 'Дилян',
'Евстати', 'Евстатий', 'Евстахий', 'Евтим', 'Егор', 'Едвин', 'Едит', 'Еднорог', 'Едрю', 'Едуард', 'Еким', 'Ектар', 'Ектор', 'Елвис', 'Елеан', 'Електрон', 'Елемаг', 'Елен', 'Еленко', 'Елиан', 'Елиас', 'Елиезер', 'Елизабет', 'Елин', 'Елисей', 'Елисия', 'Елко', 'Елтимир', 'Ельо', 'Ема-Бела', 'Еманоил', 'Емануел', 'Емануил', 'Емил', 'Емилиан', 'Емилиян', 'Ендо', 'Енис', 'Енчо', 'Еньо', 'Еню', 'Ервин', 'Ередин', 'Еремия', 'Ерик', 'Ерина', 'Ерол', 'Ерослав', 'Ерсен', 'Есен', 'Етиен', 'Ефка',
'Заварин', 'Завен', 'Замфир', 'Занго', 'Занко', 'Заприн', 'Запрян', 'Зарко', 'Зафер', 'Зафир', 'Захар', 'Захари', 'Захарин', 'Захо', 'Звездан', 'Звезделюб', 'Звездин', 'Звездислав', 'Звездиян', 'Звездолет', 'Звездомир', 'Згура', 'Здравелин', 'Здравец', 'Здравко', 'Здравомир', 'Здравчо', 'Зенгин', 'Зика', 'Зинко', 'Зинови', 'Златан', 'Злати', 'Златил', 'Златимир', 'Златин', 'Златиян', 'Златко', 'Златогор', 'Златозар', 'Златомир', 'Златослав', 'Златоцвет', 'Златьо', 'Золтан', 'Зоран',
'Илиомар', 'Илич', 'Илия', 'Илиян', 'Илко', 'Илчо', 'Имилиан', 'Ингемунд', 'Инко', 'Инокентий', 'Инчо', 'Иполит', 'Ириан', 'Ириней', 'иринеус', 'Ириян', 'Ирко', 'Ирма', 'Ирник', 'Исайа', 'Исак', 'Исидор', 'Искрен', 'Искър', 'Исперих', 'Истан', 'Истатко', 'Истилян', 'Исус', 'Итан', 'Итко', 'Ихтиандър', 'Ицо', 'Ичо', 'Йено', 'Йеремия', 'Йоан', 'Йоан-Александър', 'Йоан-иво', 'Йов', 'Йован', 'Йовица', 'Йовко', 'Йово', 'Йовро', 'Йовцо', 'Йовчо', 'Йожи', 'Йоил', 'Йоланд', 'Йолиян', 'Йолко',
'Карен', 'Карим', 'Карин', 'Карло', 'Кармен', 'Каролин', 'Карчо', 'Касандър', 'Катакомб', 'Каталинка', 'Катерин', 'Кевин', 'Кеворк', 'Кери', 'Кибер', 'Кимба', 'Кимбо', 'Кимо', 'Кимон', 'Кимчо', 'Кин', 'Кинка', 'Кинта', 'Киприслав', 'Киприян', 'Кириен', 'Кирил', 'Кирко', 'Кирчо', 'Киряк', 'Киряки', 'Киряко', 'Кис', 'Кит', 'Кито', 'Китодар', 'Китомир', 'Клеантин', 'Клим', 'Климент', 'Кнут', 'Козма', 'Койно', 'Койо', 'Койчо', 'Коко', 'Коле', 'Колонина', 'Колчо', 'Кольо', 'Колю', 'Комнин',
'Лалко', 'Лало', 'Лальо', 'Ламби', 'Ламбо', 'Ламбри', 'Ламбю', 'Ланселот', 'Ласкал', 'Ласкар', 'Ластър', 'Латин', 'Латко', 'Латьо', 'Латю', 'Лашко', 'ЛЕА-МАРИЯ', 'Леандър', 'Лев', 'Левент', 'Левчо', 'Леко', 'Ленин', 'Ленко', 'Леон', 'Леонардо', 'Леонид', 'Лесе', 'Лефтер', 'Лечо', 'Лилко', 'Лило', 'Лилчо', 'Лилян', 'Лимон', 'Лимончо', 'Липе', 'Лихия', 'Личо', 'Ловчо', 'Лозан', 'Лозана', 'Лозен', 'Лора-софия', 'Лоранс', 'Лоренцо', 'Лука', 'Лукан', 'Луко', 'Лули', 'Лулчо', 'Лусио', 'Лусия',
'Маноел', 'Манол', 'Манолин', 'Маноло', 'Мантас', 'Мануил', 'Мануш', 'Манчестър Юнайтед', 'Манчо', 'Маньо', 'Маню', 'Марангони', 'Маргарин', 'Маргарит', 'Марек', 'Мариан', 'Марий', 'Марин', 'Маринел', 'Маринчо', 'Марио', 'Мариоллита', 'Мариочка', 'Маритна', 'Мариян', 'Марк', 'Марк-антоний', 'Марко', 'Маркус', 'Мартен', 'Мартин', 'Мартиниян', 'Марто', 'Маруш', 'Марчело', 'Маслина', 'Матей', 'Матьо', 'Матю', 'Махно', 'Машо', 'Медиан', 'Менко', 'Мено', 'Мерилин', 'Месак', 'Метакса',
'Найо', 'Найчо', 'Наке', 'Нако', 'Нанко', 'Нанков', 'Нано', 'Нансимир', 'Нанчо', 'Наню', 'Нарцислав', 'Наско', 'Настимир', 'Настрадин', 'Натанаил', 'Нати', 'Натко', 'Наум', 'Нафисат', 'Нафтали', 'Нацко', 'Нацо', 'Начиян', 'Начко', 'Начо', 'Невелин', 'Невен', 'Невенко', 'Невилиян', 'Невян', 'Негослав', 'Неделин', 'Неделчо', 'Недислав', 'Недко', 'Недолюб', 'Недьо', 'Недю', 'Недялко', 'Нейко', 'Нейчо', 'Нелко', 'Нелчо', 'Нене', 'Ненко', 'Нено', 'Ненсислав', 'Ненчо', 'Неокли', 'Нерес',
'Обретим', 'Ованес', 'Огин', 'Огнемир', 'Огнен', 'Огнян', 'Океан', 'Олег', 'Олек', 'Олимпи', 'Омар', 'Омуртаг', 'Оник', 'Онуфри', 'Ончо', 'Орел', 'Орлин', 'Ортодокси', 'Орфей', 'Орхидей', 'Орце', 'Оскар', 'Оханес', 'Павел', 'Павелин', 'Павил', 'Павко', 'Павлик', 'Павлин', 'Павлинчо', 'Павломир', 'Паисий', 'Пако', 'Палми', 'Палмиро', 'Панаври', 'Панай', 'Панайот', 'Панде', 'Панделис', 'Пане', 'Панкртийян', 'Пано', 'Панталей', 'Пантелей', 'Пантер', 'Панто', 'Пантю', 'Панчо', 'Паолина',
'Параскев', 'Параход', 'Парашкев', 'Парашкеван', 'Паруш', 'Паскал', 'Паско', 'Паспанахил', 'Пато', 'Патрик', 'Патьо', 'Паулин', 'Паун', 'Пацо', 'Пачо', 'Пашо', 'Пейко', 'Пейо', 'Пейодон', 'Пейтан', 'Пейчин', 'Пейчо', 'Пеко', 'Пелай', 'Пеле', 'Пене', 'Пенко', 'Пенчин', 'Пенчо', 'Пеньо', 'Пеню', 'Пео', 'Пепино', 'Пепислав', 'Пепо', 'Пепонаки', 'Перикъл', 'Персиана', 'Персиян', 'Перчо', 'Петиконгрес', 'Петкан', 'Петко', 'Пето', 'Петраки', 'Петран', 'Петрана', 'Петринел', 'Петрозар', 'Петромил',
'Рангел', 'Рангел-любими', 'Рандю', 'Ранчо', 'Расате', 'Ратослав', 'Рафаил', 'Рачко', 'Рачо', 'Рашко', 'Рашо', 'Раю', 'Раян', 'Реан', 'Рем', 'Рикардо', 'Риналдо', 'Рис', 'Ристя', 'Ричард', 'Ричерд', 'Роберт', 'Роберто', 'Робин', 'Робърт', 'Рогелин', 'Рогелина', 'Рогена', 'Родан', 'Родион', 'Розалин', 'Розин', 'Розоцвет', 'Ройо', 'Роксан', 'Роман', 'Ромел', 'Ромелина', 'Ромен', 'Ромео', 'Ромил', 'Ромул', 'Росен', 'Росенка', 'Росимир', 'Росицвет', 'Роска', 'Роско', 'Ростиана', 'Ростимир', 'Ростислав',
'Светломир', 'Светлю', 'Светозар', 'Светослав', 'Свилен', 'Себастиан', 'Себахтин', 'Севан', 'Севар', 'Севастин', 'Севдалин', 'Севдан', 'Севелин', 'Северин', 'Седевчо', 'Седеф', 'Седефчо', 'Селен', 'Селена', 'Сенко', 'Серафим', 'Сергей', 'Сеслав', 'Сиви', 'Сивко', 'Сидер', 'Сидония', 'Сидор', 'Сиен', 'Силаги', 'Силан', 'Силвестър', 'Силвио', 'Силвиян', 'Силен', 'Силян', 'Симеон', 'Симо', 'Сирман', 'Сифоня', 'Скорбут', 'Слав', 'Славдо', 'Славе', 'Славей', 'Славейко', 'Славен', 'Слави', 'Славил',
'Теодоси', 'Теодосий', 'Теодослав', 'Теодостин', 'Теофан', 'Теофил', 'Теохар', 'Тервел', 'Тигрони', 'Тило', 'Тильо', 'Тимо', 'Тимон', 'Тимотей', 'Тимчо', 'Тинко', 'Тино', 'Тинчо', 'Тихо', 'Тихол', 'Тихомир', 'Тихон', 'Тишо', 'Тоде', 'Тодомирка', 'Тодор', 'Тодораки', 'Тодорин', 'Тодорина', 'Токимир', 'Толек', 'Толю', 'Тома', 'Томас', 'Томен', 'Томи', 'Томинка', 'Томислав', 'Томо', 'Тоне', 'Тони', 'Тонимир', 'Тонислав', 'Тонко', 'Тончо', 'Тоньо', 'Топалко', 'Тополко', 'Тотко', 'Тотьо', 'Тотю', 'Тоцо',
'Филатей', 'Фили', 'Филидан', 'Филимон', 'Филион', 'Филип', 'Филипас', 'Филипопол', 'Филко', 'Филомир', 'Филчо', 'Фильо', 'Финдо', 'Финдол', 'Фиро', 'Фирчо', 'Фичо', 'Флори', 'Флориан', 'Флорин', 'Флоро', 'Фори', 'Фосил', 'Фотин', 'Франк', 'Франц', 'Францислав', 'Фрацил', 'Фреди', 'Фродо', 'Фуго', 'Фуко', 'Фъстък', 'Фътьо', 'Фьодор', 'Хавтелин', 'Ханко', 'Хараламби', 'Харалампи', 'Харалан', 'Харбингър', 'Хари', 'Харизан', 'Харитии', 'Харитон', 'Хасан', 'Хасатин', 'Хачо', 'Хвойне', 'Хебър', 'Хектор',
'Хераклит', 'Хернани', 'Херодот', 'Хефестион', 'Химинай', 'Хинко', 'Хино', 'Хитко', 'Хороз', 'Храбрин', 'Храбър', 'Хранимир', 'Хранко', 'Хрелко', 'Хрельо', 'Хрисим', 'Хрисимир', 'Хрисо', 'Христалин', 'Христивилин', 'Христиела', 'Христилиан', 'Христилин', 'християн', 'Христо', 'Христо-никола', 'Христодор', 'Христозар', 'Христозорнициан', 'Христозорницомил', 'Христомил', 'Христомир', 'Христоско', 'Христослав', 'Христофор', 'Хрисчо', 'Хрондел', 'Хрусан', 'Хубав', 'Хубавен', 'Хубан', 'Хубен',
'Цоньо', 'Цоню', 'Цоцо', 'Цочо', 'Цъки', 'Чавдар', 'Чанкете', 'Чанко', 'Чано', 'Чаньо', 'Чаню', 'Чардафон', 'Чародей', 'Чауш', 'Чачо', 'Чвор', 'Чедомир', 'Ченко', 'Ченю', 'Чепо', 'Чернобил', 'Черноризец', 'Черньо', 'Чийо', 'Чико', 'Чило', 'Чонар', 'Чони', 'Чоно', 'Чоню', 'Чора', 'Чочо', 'Чочомир', 'Чубрик', 'Чуде', 'Чудо', 'Чудомир', 'Чудослав', 'Чук', 'Шабан', 'Шамо', 'Шанко', 'Шаноу', 'Шаро', 'Шейна', 'Шеки', 'Шенко', 'Шенол', 'Шибил', 'Шидер', 'Шильо', 'Шинко', 'Шино', 'Шипчан', 'Ширко', 'Шишман',
'Шкодри', 'Шмильо', 'Шмулю', 'Шпилко', 'Шпиньо', 'Шушо', 'Щедрин', 'Щедю', 'Щеки', 'Щено', 'Щеню', 'Щерион', 'Щериян', 'Щерко', 'Щеро', 'Щерьо', 'Щерю', 'Щилиян', 'Щилян', 'Щирян', 'Щоно', 'Щтърбан', 'Щтъркан', 'Щурк', 'Щурчо', 'Щърбан', 'Щъркан', 'Ъглен', 'Ълен', 'Ърнест', 'Ъруин', 'Ърчо', 'Ьобирдар', 'Юги', 'Юли', 'Юлиан', 'Юлий', 'Юлиян', 'Юрдан', 'Юри', 'Юрий', 'Юстин', 'Юстиниан', 'Яблен', 'Явлен', 'Явор', 'Яго', 'Ягодин', 'Язо', 'Яким', 'Яко', 'Якоб', 'Яков', 'Якослав', 'Ямболен', 'Ян', 'Янадин',
'Янаки', 'Янакин', 'Яначко', 'Яне', 'Янег', 'Янедин', 'Янек', 'Янеслав', 'Яни', 'Яниел', 'Яник', 'Янимир', 'Янис', 'Янислав', 'Яничко', 'Янко', 'Янкул', 'Янкуп', 'Яно', 'Яномил', 'Янтар', 'Януш', 'Янцислав', 'Янче', 'Янчо', 'Ярно', 'Яромир', 'Ярослав', 'Ярце', 'Ярчо', 'Яръм', 'Ярю', 'Ясен', 'Ясер', 'Ястреб', 'Ятан', 'Яцо', 'Ячко', 'Ячо', 'Яшар', 'Яшка', 'Яшо', 'Яшон'
);
protected static $firstNameFemale = array(
'Авгия', 'Авигея', 'Авторка', 'Аглая', 'Аглоида', 'Агнешка', 'Адамина', 'Адра', 'Адрианиа', 'Аела', 'Айрен', 'Аксентия', 'Алания', 'Албина', 'Александрина', 'Алексиа', 'Аленка', 'Алиана', 'Алисия', 'Алтая', 'Амбър', 'Амория', 'Ана Мария', 'Анатолия', 'Ангелка', 'Андика', 'Андриана', 'Анелина', 'анета', 'Анза', 'Анимира', 'Аница', 'Аномалия', 'Антоалина', 'Антонела', 'Ануша', 'Анхея-мей', 'Аполинария', 'Аралия', 'Аркадия', 'Арсена', 'Аселина', 'Асифа', 'Астромерия', 'Атина', 'Аурора', 'Багра',
'Балина', 'Бацислава', 'Беатрис', 'Бела', 'Белисима', 'Беломира', 'Бенелена', 'Берислава', 'Бея', 'Билена', 'Бисера', 'Биянка', 'Благодатка', 'Благосвета', 'Богдалина', 'Богородка', 'Бодурка', 'Божидара-силвестра', 'Божинела', 'Божурка', 'Бонифация', 'Борена', 'Бориска', 'Борянка', 'Боца', 'Бригита', 'Бронислава', 'Буна', 'Буча', 'Бързана', 'Ваклина', 'Валерия', 'Валя', 'Вангелия', 'Ванухи', 'Варта', 'Васенка', 'Василина', 'Васка', 'Вашиля', 'Вежда', 'Велиана', 'Велинна', 'Велиянка', 'Венда',
'Венеция', 'Венислава', 'Венчислава', 'Верена', 'Верислава', 'Веса', 'Веселинка', 'Весна', 'Веца', 'Видима', 'Виктория', 'Вилия', 'Вилхема', 'Виолета', 'Виржиния', 'Витомира', 'Вишка', 'Владилена', 'Владлена', 'Водица', 'Войнка', 'Вула', 'Възкресения', 'Въльо', 'Върбунка', 'Въца', 'Габи', 'Галена', 'Галина', 'Галя', 'Гануца', 'Гвоздейка', 'Гена', 'Георгелена', 'Георгица', 'Герга', 'Гердана', 'Гертруда', 'Гиздана', 'Гичка', 'Гордана', 'Гория', 'Гоца', 'Графица', 'Грета', 'Гримяна', 'Гроздинка',
'Гуна', 'Гъда', 'Гълъбица', 'Гюгра', 'Гюргя', 'Дакота', 'Дамяна', 'Данелина', 'Данимира', 'Данка', 'Дарданела', 'Дария', 'Дафинка', 'Деа', 'Деви', 'Делиана', 'Деля', 'Демирела', 'Дениандра', 'Дениславена', 'Денница', 'Десимиляна', 'Десияна', 'Дефлорина', 'Дея', 'Джана', 'Джиневра', 'Джулия', 'Диана - Мария', 'Дида', 'Дилмана', 'Димитра', 'Димка', 'Динна', 'Добрина', 'Дойка', 'Доменика', 'Доника', 'Дора-Анна', 'Дорина', 'Доста', 'Доча', 'Драгица', 'Дренка', 'Дуда', 'Душка', 'Дюкяна', 'Евангелина',
'Евдокия', 'Евридика', 'Едита', 'Ел', 'Елдора', 'Еленица', 'Елеонета', 'Ели', 'Елиз', 'Елина', 'Елиса', 'Елица', 'Елма', 'Елфида', 'Емануила', 'Емма', 'Еница', 'Ергана', 'Ермиля', 'Естела', 'Ефимена', 'Ефросиния', 'Жаклин', 'Жанин', 'Жара', 'Жейна', 'Желязка', 'Женимира', 'Жива', 'Живомира', 'Жичка', 'Жорка', 'Жулиана', 'Заека', 'Занка', 'Зафа', 'Захаринка', 'Звездемира', 'Здравелина', 'Здухостина', 'Зинаида', 'Златея', 'Златка', 'Златомира', 'Зоичка', 'Зорка', 'Зузичка', 'Ивалена', 'ивамина',
'Иванеса', 'Иваничка', 'Ивелиана', 'Ивинка', 'Иглика', 'Изидора', 'Илеана', 'Илианна', 'Илинда', 'Илка', 'Инан', 'Инеса', 'Ира', 'Ирин', 'Ирла', 'Исихия', 'Истилияна', 'Йоана', 'Йоанна', 'Йованка', 'Йоко', 'Йолина', 'Йона', 'Йоника', 'Йорданка', 'Йоханна', 'Кадифейка', 'Калея', 'Калина', 'Калиса', 'Калуда', 'Камея', 'Кануша', 'Карамелита', 'Карина', 'Касиди', 'Катастрофа', 'Катинка', 'Каунка', 'Кветослава', 'Керанка', 'Кети', 'Кино', 'Кирка', 'Китчица', 'Клара', 'Клеуна', 'Клоя', 'Кокимира',
'Комара', 'Константина', 'Корнелия', 'Костадинка', 'Кралина', 'Красидара', 'Красияна', 'Криси', 'кристабела', 'Кристиана', 'Кристия', 'Кръстанка', 'Ксандриния', 'Кунка', 'Кьнина', 'Лада', 'Лазура', 'Лалка', 'Лариса', 'Лаца', 'Лека', 'Ленче', 'Летисия', 'Либерта', 'Лидийка', 'Лика', 'Лилия', 'Лилянка', 'Линда', 'Лия', 'Лозанка', 'Лорена', 'Лоти', 'Луна', 'Лъчезарка', 'Любина', 'Люблина', 'Любослава', 'Люляна', 'Люсила', 'Лянка', 'Магдалена', 'Мадлен', 'Майя', 'Максимилияна', 'Малена',
'Малтина', 'Манолина', 'Мара-антоанета', 'Маргит', 'Марен', 'Мари-анри', 'Марийка', 'Маринета', 'Мариотка', 'Мария', 'Мария-елена', 'Мария-Хуана', 'Марлена', 'Маруся', 'Маса', 'Матка', 'Маша', 'Медиха', 'Мелания', 'Мелъди', 'Меропа', 'Миглена', 'Мила', 'Милара', 'милдия', 'Милиана', 'Милост', 'Мимоза', 'Минка', 'Миранза', 'Мирена', 'Миропа', 'Мисла', 'Митошка', 'Михайлена', 'Мишка', 'Младлена', 'Момера', 'Моника', 'Мортадела', 'Мушана', 'Наводненка', 'Надка', 'Найда', 'Нани', 'Настия',
'Наташа', 'Невена', 'Негрита', 'Неделяна', 'Нейка', 'Нелида', 'Нелла', 'Неолина', 'Нешка', 'Нигрита', 'Никоела', 'Николина', 'Нионила', 'Нона', 'Норка', 'Нурета', 'Огнена', 'Октавия', 'Оливера', 'Омана', 'Орлеана', 'Орхидея', 'Павилия', 'Павлина', 'Палвира', 'Паломина', 'Панда', 'Пантера', 'Парашкевица', 'Парунка', 'Патриотка', 'Паулина', 'Паца', 'Пейолина', 'Пелина', 'Пепелота', 'Периана', 'перуна', 'Петинка', 'Петрийка', 'Петромира', 'Петрушка', 'Пешка', 'Пламена', 'Плодовитка',
'Полексина', 'Полин', 'Правда', 'Преса', 'Прина', 'Пролетина', 'Простисвета', 'Пупи', 'Първолетка', 'Рада', 'Радиа', 'Радимира', 'Радка', 'Радосвета', 'Радостка', 'Раинка', 'Райничка', 'Рамина', 'Ревка', 'Ренгия', 'Риана', 'Римма', 'Рия', 'Роза', 'Розана', 'Розета', 'Розка', 'Роксана', 'Ромолета', 'Роселина', 'Росислава', 'Ростислава', 'Ружка', 'Румислава', 'Русалия', 'Руска', 'Сабина', 'Савета', 'Салина', 'Санка', 'Сарая', 'Сахория', 'Свежа', 'Светла', 'Светломира', 'Свидна', 'Свободка',
'Севда', 'севделина', 'Севета', 'Семенарка', 'Сергелинка', 'Сибила', 'Сиена', 'Силви', 'Силвия-александра', 'Силяна', 'Симона', 'Синтия', 'Сисоя', 'Скакалка', 'Славея', 'Славка', 'Сладоледка', 'Смехотерапия', 'Смирна', 'Снежинка', 'Софийка', 'Спасена', 'Спасияна', 'Спирела', 'Стависара', 'Стаматка', 'Станиела', 'Станимирка', 'Сташа', 'Стелина', 'Стефани', 'Стеяна', 'Стоимена', 'Столетка', 'Стоянка', 'Сузи', 'Съвестина', 'Сърменка', 'Таисия', 'тамара', 'Таня', 'Ташимира', 'Теа',
'Телефонка', 'Темира', 'Теодора', 'Теса', 'Тилиана', 'Тиха', 'Тоанета', 'Толиана', 'Тона', 'Тоницвета', 'Тоска', 'Тошка', 'Трендафила', 'Трифонка', 'Троша', 'Труфана', 'Тръпка', 'Туфка', 'Улиана', 'Урима', 'Фабияна', 'Фатиме', 'Феня', 'Фикия', 'Филипини', 'Фимка', 'Флавия', 'Флорика', 'Фотинка', 'Фронка', 'Фуга', 'Хана', 'Харитония', 'Хенриета', 'Хинка', 'Холи', 'Хранислава', 'Хрисанка', 'Христа', 'Христела', 'Христилияна', 'Христоелена', 'Христя', 'Хубавелка', 'Цанета', 'Царевна',
'Цветана', 'Цветелина', 'Цветилена', 'Цветлина', 'Цветолилия', 'Цветяна', 'Цеца', 'Цола', 'Цоня', 'Чана', 'Чардафона', 'Чачия', 'Череша', 'Четвърта', 'Чона', 'Чубрина', 'Шана', 'Шена', 'Шехерезада', 'Шинка', 'Щедра', 'Щериана', 'Щефания', 'Щилянка', 'Щтилка', 'Ъгленка', 'Ъчка', 'Юлиена', 'Юлия', 'Юнона', 'Юрита', 'Юстианна', 'Ябленка', 'Явора', 'Ягода', 'Ялислава', 'Яна - Мартина', 'Янина', 'Яниславия', 'Янка', 'Ярка', 'Ясена', 'Ятана'
);
protected static $lastNameMale = array(
'Чанталиев', 'Симеонов', 'Данданов', 'Кърков', 'Братухчев', 'Цветков', 'Иванов', 'Яназов', 'Тодоров', 'Колчев', 'Порязов', 'Келешев', 'Бърборков', 'Дришльов',
'Макаронски', 'Количков', 'Принов', 'Бодуров', 'Китов', 'Гьоков', 'Кукуряшков', 'Симеонов', 'Балахуров', 'Милачков', 'Европов Кирилов',
'Площаков', 'Мангъров', 'Хвърчилков', 'Дзезов', 'Ждраков', 'Месаров', 'Тухчиев', 'Топков', 'Яков', 'Иликьов', 'Бурханларски', 'Вражалски', 'Тутурилов', 'Бранков',
'Зенгинов', 'Чокълтов', 'Фенеров', 'Кучев', 'Възвъзов', 'Кьоров', 'Джогов', 'Пъков', 'Рангелов', 'Чутурков', 'Самсонов', 'Ментешев',
'Андонов', 'Бумов', 'Мочев', 'Дачев', 'Муев', 'Младенов', 'Тошев', 'Бедринов', 'Тумангелов', 'Негрилов', 'Канчин', 'Миленков', 'Патков',
'Пондьов', 'Самоходов', 'Четрафилски', 'Смърдански', 'Клатуров', 'Вакрилов', 'Портокалов', 'Прошков', 'Пулев', 'Парашкевов', 'Манавски', 'Чуков',
'Овнарски', 'Рошльов', 'Пройкова', 'Младенова', 'Кочеткова', 'Кесьов', 'Римпопов', 'Златков', 'Колев', 'Пикянски', 'Николов', 'Цицков',
'Стойков', 'Каракашев', 'Чуканов', 'Докова', 'Мераков', 'Пеева', 'Педалов', 'Тъпчилещов', 'Въртунински', 'Кодуков', 'Татьозов', 'Токов',
'Кукуригов', 'Юрганчев', 'Клатикрушев', 'Монтянов', 'Бобев', 'Топчийски', 'Луланков', 'Костов', 'Колипатков', 'Чукчуков', 'Геройски', 'Катъров', 'Кобиларов',
'Лимонадов', 'Цоцов', 'Поаков', 'Недялков', 'Станишев', 'Йорданов', 'Щърбов', 'Щонов', 'Занов'
);
protected static $lastNameFemale = array(
'Шестакова', 'Кокошкова', 'Градинарова', 'Куртакова', 'Чанлиева', 'Тодорова', 'Пътечкова', 'Скринска', 'Сапунджиева', 'Вампирска', 'Червенкова', 'Васовa', 'Таралингова',
'Илиева', 'Кривошапкова', 'Чупетловска', 'Катърова', 'Бележкова', 'Мустакова', 'Пръндачка', 'Коритарова', 'Йоткова', 'Сланинкова', 'Мангъфова', 'Шкембова', 'Пенджакова',
'Пачаръзка', 'Куртажова', 'Плюнкова', 'Многознаева', 'Контопишева', 'Белоконска-Вражалска', 'Кучкуделова', 'Крушовска', 'Пищовколева', 'Сопаджиева', 'Точева-Клопова',
'Габровлиева', 'Първанова', 'Певецова', 'Курухубева', 'Яркова', 'Плюцова', 'Балканска'
);
protected static $titleMale = array('Г-н', 'Др.');
protected static $titleFemale = array('Г-жа', 'Г-ца', 'Др.');
/**
* @param string|null $gender 'male', 'female' or null for any
* @example 'Чанталиев'
*/
public function lastName($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::lastNameMale();
} elseif ($gender === static::GENDER_FEMALE) {
return static::lastNameFemale();
}
return $this->generator->parse(static::randomElement(static::$lastNameFormat));
}
public static function lastNameMale()
{
return static::randomElement(static::$lastNameMale);
}
public static function lastNameFemale()
{
return static::randomElement(static::$lastNameFemale);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace Faker\Provider\bg_BG;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'+359(0)#########',
'+359(0)### ######',
'+359(0)### ### ###',
'+359#########',
'0#########',
'0### ######',
'0### ### ###',
'0### ###-###',
'(0###) ######',
'(0###) ### ###',
'(0###) ###-###',
);
}

View File

@@ -0,0 +1,58 @@
<?php
namespace Faker\Provider\bn_BD;
class Address extends \Faker\Provider\Address
{
protected static $cityPrefix = array('দক্ষিন', 'পূর্ব', 'পশ্চিম', 'উত্তর', 'নতুন', 'লেইক', 'পোর্ট');
protected static $citySuffix = array('টাউন', 'তলা', 'হাট', 'খানা');
protected static $streetNames = array(
'বরকত', 'হাজী', 'করিমউদ্দিন'
);
protected static $streetSuffix = array(
'তলী', 'গলি', 'চিপা', 'ব্রীজ', 'সড়ক', 'বাইপাস', 'ক্যাম্প',
);
protected static $postcode = array('#####', '#####-####');
protected static $state = array(
'খুলনা', 'বরিশাল', 'চিটাগং', 'ঢাকা', 'রাজশাহী', 'সিলেট', 'কুমিল্লা'
);
protected static $country = array(
'বাংলাদেশ'
);
protected static $cityFormats = array(
'{{cityPrefix}}{{citySuffix}}',
);
protected static $streetNameFormats = array(
'{{banglaStreetName}} {{streetSuffix}}',
);
protected static $streetAddressFormats = array(
'{{streetNumber}} {{streetName}}',
);
protected static $addressFormats = array(
"{{streetAddress}}, {{city}} {{state}}",
);
public static function cityPrefix()
{
return static::randomElement(static::$cityPrefix);
}
public static function state()
{
return static::randomElement(static::$state);
}
public static function streetNumber()
{
return Utils::getBanglaNumber(static::numberBetween(1, 100));
}
public static function banglaStreetName()
{
return static::randomElement(static::$streetNames);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace Faker\Provider\bn_BD;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
'{{companyName}} {{companyType}}'
);
protected static $names = array(
'রহিম', 'করিম', 'বাবলু'
);
protected static $types = array(
'সিমেন্ট', 'সার', 'ঢেউটিন'
);
public static function companyType()
{
return static::randomElement(static::$types);
}
public static function companyName()
{
return static::randomElement(static::$names);
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace Faker\Provider\bn_BD;
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{titleMale}} {{firstNameMale}} {{lastName}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
);
protected static $firstNameMale = array(
'অনন্ত', 'আব্দুল্লাহ', 'আহসান', 'ইমরুল', 'করিম', 'জলিল', 'বরকত', 'মাসনুন', 'রহিম', 'রিফাত', 'হাসনাত', 'হাসান',
);
protected static $firstNameFemale = array(
'জারিন', 'জেরিন', 'ফারহানা', 'ফাহমেদা', 'মাহজাবিন', 'মেহনাজ', 'রহিমা', 'লাবনী', 'সাবরিন', 'সাবরিনা', 'হাসিন', 'রহমত',
);
protected static $lastName = array(
'খান', 'শেখ', 'শিকদার', 'আলী', 'তাসনীম', 'তাবাসসুম'
);
protected static $titleMale = array('মি.');
protected static $titleFemale = array('মিসেস.', 'মিস.');
}

View File

@@ -0,0 +1,14 @@
<?php
namespace Faker\Provider\bn_BD;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
public static function phoneNumber()
{
$number = "+880";
$number .= static::randomNumber(7);
return Utils::getBanglaNumber($number);
}
}

View File

@@ -0,0 +1,14 @@
<?php
namespace Faker\Provider\bn_BD;
class Utils
{
public static function getBanglaNumber($number)
{
$english = range(0, 10);
$bangla = array('', '১', '২', '৩', '', '৫', '৬', '', '৮', '৯');
return str_replace($english, $bangla, $number);
}
}

View File

@@ -0,0 +1,149 @@
<?php
namespace Faker\Provider\cs_CZ;
class Address extends \Faker\Provider\Address
{
protected static $streetAddressFormats = array(
'{{streetName}}',
'{{streetName}} {{buildingNumber}}',
'{{streetName}} {{buildingNumber}}',
'{{streetName}} {{buildingNumber}}',
'{{streetName}} {{buildingNumber}}',
);
protected static $addressFormats = array(
"{{streetAddress}}\n{{region}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}",
"{{streetAddress}}\n{{postcode}} {{city}}\nČeská republika",
);
protected static $buildingNumber = array('%', '%%', '%/%%', '%%/%%', '%/%%%', '%%/%%%');
protected static $postcode = array('#####', '### ##');
/**
* Source: https://cs.wikipedia.org/wiki/Seznam_m%C4%9Bst_v_%C4%8Cesku_podle_po%C4%8Dtu_obyvatel
*/
protected static $city = array(
'Brno', 'Břeclav', 'Cheb', 'Chomutov', 'Chrudim', 'Černošice', 'Česká Lípa', 'České Budějovice',
'Český Těšín', 'Děčín', 'Frýdek-Místek', 'Havlíčkův Brod', 'Havířov', 'Hodonín', 'Hradec Králové',
'Jablonec nad Nisou', 'Jihlava', 'Karlovy Vary', 'Karviná', 'Kladno', 'Kolín', 'Krnov', 'Kroměříž',
'Liberec', 'Litoměřice', 'Litvínov', 'Mladá Boleslav', 'Most', 'Nový Jičín', 'Olomouc', 'Opava', 'Orlová',
'Ostrava', 'Pardubice', 'Plzeň', 'Praha', 'Prostějov', 'Písek', 'Přerov', 'Příbram', 'Sokolov', 'Šumperk',
'Teplice', 'Trutnov', 'Tábor', 'Třebíč', 'Třinec', 'Uherské Hradiště', 'Ústí nad Labem',
'Valašské Meziříčí', 'Vsetín', 'Zlín', 'Znojmo',
);
/**
* Source: https://cs.wikipedia.org/wiki/Seznam_st%C3%A1t%C5%AF_sv%C4%9Bta
*/
protected static $country = array(
'Afghánistán', 'Albánie', 'Alžírsko', 'Andorra', 'Angola', 'Antigua a Barbuda', 'Argentina',
'Arménie', 'Austrálie', 'Ázerbájdžán', 'Bahamy', 'Bahrajn', 'Bangladéš', 'Barbados', 'Belgie',
'Belize', 'Benin', 'Bělorusko', 'Bhútán', 'Bolívie', 'Bosna a Hercegovina', 'Botswana', 'Brazílie',
'Brunej', 'Bulharsko', 'Burkina Faso', 'Burundi', 'Cookovy ostrovy', 'Čad', 'Černá Hora', 'Česká republika',
'Čína', 'Dánsko', 'Demokratická republika Kongo', 'Dominika', 'Dominikánská republika', 'Džibutsko',
'Egypt', 'Ekvádor', 'Eritrea', 'Estonsko', 'Etiopie', 'Fidži', 'Filipíny', 'Finsko', 'Francie', 'Gabon',
'Gambie', 'Ghana', 'Grenada', 'Gruzie', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Honduras',
'Chile', 'Chorvatsko', 'Indie', 'Indonésie', 'Irák', 'Írán', 'Irsko', 'Island', 'Itálie', 'Izrael', 'Jamajka',
'Japonsko', 'Jemen', 'Jihoafrická republika', 'Jižní Korea', 'Jižní Súdán', 'Jordánsko', 'Kambodža', 'Kamerun',
'Kanada', 'Kapverdy', 'Katar', 'Kazachstán', 'Keňa', 'Kiribati', 'Kolumbie', 'Komory', 'Republika Kongo',
'Kostarika', 'Kuba', 'Kuvajt', 'Kypr', 'Kyrgyzstán', 'Laos', 'Lesotho', 'Libanon', 'Libérie', 'Libye',
'Lichtenštejnsko', 'Litva', 'Lotyšsko', 'Lucembursko', 'Madagaskar', 'Maďarsko', 'Makedonie', 'Malajsie',
'Malawi', 'Maledivy', 'Mali', 'Malta', 'Maroko', 'Marshallovy ostrovy', 'Mauritánie', 'Mauricius', 'Mexiko',
'Federativní státy Mikronésie', 'Moldavsko', 'Monako', 'Mongolsko', 'Mosambik', 'Myanmar', 'Namibie', 'Nauru',
'Nepál', 'Německo', 'Niger', 'Nigérie', 'Nikaragua', 'Niue', 'Nizozemsko', 'Norsko', 'Nový Zéland', 'Omán',
'Pákistán', 'Palau', 'Panama', 'Papua-Nová Guinea', 'Paraguay', 'Peru', 'Pobřeží slonoviny', 'Polsko',
'Portugalsko', 'Rakousko', 'Rovníková Guinea', 'Rumunsko', 'Rusko', 'Rwanda', 'Řecko', 'Salvador', 'Samoa',
'San Marino', 'Saúdská Arábie', 'Senegal', 'Severní Korea', 'Seychely', 'Sierra Leone', 'Singapur',
'Slovensko', 'Slovinsko', 'Somálsko', 'Spojené arabské emiráty', 'Spojené království', 'Spojené státy americké',
'Srbsko', 'Středoafrická republika', 'Surinam', 'Súdán', 'Svatá Lucie', 'Svatý Kryštof a Nevis',
'Svatý Tomáš a Princův ostrov', 'Svatý Vincenc a Grenadiny', 'Svazijsko', 'Sýrie', 'Šalamounovy ostrovy',
'Španělsko', 'Šrí Lanka', 'Švédsko', 'Švýcarsko', 'Tádžikistán', 'Tanzanie', 'Thajsko', 'Togo', 'Tonga',
'Trinidad a Tobago', 'Tunisko', 'Turecko', 'Turkmenistán', 'Tuvalu', 'Uganda', 'Ukrajina', 'Uruguay',
'Uzbekistán', 'Vanuatu', 'Vatikán', 'Venezuela', 'Vietnam', 'Východní Timor', 'Zambie', 'Zimbabwe',
);
/**
* Source: https://cs.wikipedia.org/wiki/Kraje_v_%C4%8Cesku#Ekonomika
*/
private static $regions = array(
'Hlavní město Praha', 'Jihomoravský kraj', 'Jihočeský kraj', 'Karlovarský kraj', 'Královéhradecký kraj',
'Liberecký kraj', 'Moravskoslezský kraj', 'Olomoucký kraj', 'Pardubický kraj', 'Plzeňský kraj',
'Středočeský kraj', 'Vysočina', 'Zlínský kraj', 'Ústecký kraj',
);
/**
* Source: http://aplikace.mvcr.cz/adresy/
*/
protected static $street = array(
'Alžírská', 'Angelovova', 'Antonínská', 'Arménská', 'Čelkovická', 'Červenkova', 'Československého exilu',
'Chlumínská', 'Chládkova', 'Diskařská', 'Do Kopečka', 'Do Vozovny', 'Do Vršku', 'Doubravická', 'Doudova',
'Drahotínská', 'Dělnická', 'Generála Šišky', 'Gončarenkova', 'Gutova', 'Havlínova', 'Havraní', 'Helmova',
'Hečkova', 'Holubinková', 'Holínská', 'Horní Hrdlořezská', 'Horní Stromky', 'Hostivařské nám.', 'Houbařská',
'Hořanská', 'Hrachovská', 'Hrad III. nádvoří', 'Hrdlořezská', 'Jenská', 'Jerevanská', 'Ježovická', 'K Březince',
'K Dobré Vodě', 'K Hořavce', 'K Hrušovu', 'K Háji', 'K Návsi', 'K Padesátníku', 'K Pyramidce', 'K Samotě',
'K Vinici', 'K Vystrkovu', 'Karlovarská', 'Karlínské nám.', 'Kaňkova', 'Ke Kyjovu', 'Ke Stadionu', 'Kejnická',
'Klatovská', 'Kohoutových', 'Kopanská', 'Kralupská', 'Kukelská', 'Kukučínova', 'Kunešova', 'Kvestorská',
'Křišťanova', 'Lanžhotská', 'Leštínská', 'Lindavská', 'Litevská', 'Lojovická', 'Lukešova', 'Maltézské náměstí',
'Melodická', 'Mečíková', 'Milady Horákové', 'Mšenská', 'N. A. Někrasova', 'Na Dědince', 'Na Habrové',
'Na Jezerce', 'Na Jílech', 'Na Petynce', 'Na Rozcestí', 'Na Sedlišti', 'Na Vrchu', 'Na Výšině', 'Na Úbočí',
'Na Štamberku', 'Nad Hliníkem', 'Nad Hřištěm', 'Nad Klikovkou', 'Nad libeňským nádražím', 'Nad Nuslemi',
'Nad Slávií', 'Nad Trnkovem', 'Nad Šauerovými sady', 'Netřebská', 'Nivnická', 'Nádražní', 'nám. Pod Lípou',
'nám. Před bateriemi', 'nám. Svatopluka Čecha', 'Odlehlá', 'Okrasná', 'Omská', 'Otavova', 'Oválová',
'Palackého nám.', 'Pavlišovská', 'Paškova', 'Petřínské sady', 'Pilovská', 'Pod Bruskou', 'Pod novou školou',
'Pod soutratím', 'Pod Svahem', 'Pod Útesy', 'Pohledná', 'Pošepného nám.', 'Prokopových', 'Pávovské náměstí',
'Pětipeského', 'Příbramská', 'Radbuzská', 'Radnické schody', 'Raichlova', 'Roentgenova', 'Rozkošného',
'Rozrazilová', 'Ruzyňská', 'Římovská', 'Říční', 'Satalická', 'Schoellerova', 'Smrková', 'Souvratní', 'Sovova',
'Sportovní', 'Stadionová', 'Statková', 'Stavební', 'Široká', 'Školní', 'Tatranská', 'Tomsova', 'Toruňská',
'Točenská', 'Trnkovo náměstí', 'Truhlářova', 'Tvrdonická', 'Týmlova', 'U Beránky', 'U Chmelnice',
'U Chodovského hřbitova', 'U Drážky', 'U Fořta', 'U Kamýku', 'U Klubovny', 'U Lesa', 'U Pekáren',
'U Prašné brány', 'U Prádelny', 'U Silnice', 'U Sladovny', 'U Slovanky', 'U Soutoku', 'U Trojice', 'U Vinice',
'U vinných sklepů', 'U Vodárny', 'U Vorlíků', 'U zeleného ptáka', 'U Čekárny', 'U Županských', 'Ukrajinská',
'Újezdská', 'V Jámě', 'V Předním Hloubětíně', 'V Rohu', 'V Uličce', 'Valčíkova', 'Ve Lhotce', 'Ve Vrších',
'Velenická', 'Violková', 'Vlašská', 'Voděradská', 'Vyderská', 'Vysokoškolská', 'Výpadová', 'Vřesovická',
'Za Pekárnou', 'Zámecká',
);
/**
* Randomly returns a czech city.
*
* @example 'Krnov'
*
* @return string
*/
public function city()
{
return static::randomElement(static::$city);
}
/**
* Randomly returns a czech region.
*
* @example 'Liberecký kraj'
*
* @return string
*/
public static function region()
{
return static::randomElement(static::$regions);
}
/**
* Real street names as random data can hardly be
* generated due to inflection.
*
* @example 'U Vodárny'
*
* @return string
*/
public function streetName()
{
return static::randomElement(static::$street);
}
}

View File

@@ -0,0 +1,120 @@
<?php
namespace Faker\Provider\cs_CZ;
class Company extends \Faker\Provider\Company
{
/**
* @var array Czech company name formats.
*/
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
'{{lastName}} {{lastName}} {{companySuffix}}',
'{{lastName}}-{{lastName}} {{companySuffix}}',
'{{lastName}} a {{lastName}} {{companySuffix}}',
);
/**
* @var array Czech catch phrase formats.
*/
protected static $catchPhraseFormats = array(
'{{catchPhraseVerb}} {{catchPhraseNoun}} {{catchPhraseAttribute}}',
'{{catchPhraseVerb}} {{catchPhraseNoun}} a {{catchPhraseNoun}} {{catchPhraseAttribute}}',
'{{catchPhraseVerb}} {{catchPhraseNoun}} {{catchPhraseAttribute}} a {{catchPhraseAttribute}}',
'Ne{{catchPhraseVerb}} {{catchPhraseNoun}} {{catchPhraseAttribute}}',
);
/**
* @var array Czech nouns (used by the catch phrase format).
*/
protected static $noun = array(
'bezpečnost', 'pohodlí', 'seo', 'rychlost', 'testování', 'údržbu', 'odebírání', 'výstavbu',
'návrh', 'prodej', 'nákup', 'zprostředkování', 'odvoz', 'přepravu', 'pronájem'
);
/**
* @var array Czech verbs (used by the catch phrase format).
*/
protected static $verb = array(
'zajišťujeme', 'nabízíme', 'děláme', 'provozujeme', 'realizujeme', 'předstihujeme', 'mobilizujeme',
);
/**
* @var array End of sentences (used by the catch phrase format).
*/
protected static $attribute = array(
'pro vás', 'pro vaší službu', 'a jsme jednička na trhu', 'pro lepší svět', 'zdarma', 'se zárukou',
's inovací', 'turbíny', 'mrakodrapů', 'lampiónků a svíček', 'bourací techniky', 'nákupních košíků',
'vašeho webu', 'pro vaše zákazníky', 'za nízkou cenu', 'jako jediní na trhu', 'webu', 'internetu',
'vaší rodiny', 'vašich známých', 'vašich stránek', 'čehokoliv na světě', 'za hubičku'
);
/**
* @var array Company suffixes.
*/
protected static $companySuffix = array('s.r.o.', 's.r.o.', 's.r.o.', 's.r.o.', 'a.s.', 'o.p.s.', 'o.s.');
/**
* Returns a random catch phrase noun.
*
* @return string
*/
public function catchPhraseNoun()
{
return static::randomElement(static::$noun);
}
/**
* Returns a random catch phrase attribute.
*
* @return string
*/
public function catchPhraseAttribute()
{
return static::randomElement(static::$attribute);
}
/**
* Returns a random catch phrase verb.
*
* @return string
*/
public function catchPhraseVerb()
{
return static::randomElement(static::$verb);
}
/**
* @return string
*/
public function catchPhrase()
{
$format = static::randomElement(static::$catchPhraseFormats);
return ucfirst($this->generator->parse($format));
}
/**
* Generates valid czech IČO
*
* @see http://phpfashion.com/jak-overit-platne-ic-a-rodne-cislo
* @return string
*/
public function ico()
{
$ico = static::numerify('#######');
$split = str_split($ico);
$prod = 0;
foreach (array(8, 7, 6, 5, 4, 3, 2) as $i => $p) {
$prod += $p * $split[$i];
}
$mod = $prod % 11;
if ($mod === 0 || $mod === 10) {
return "{$ico}1";
} elseif ($mod === 1) {
return "{$ico}0";
}
return $ico . (11 - $mod);
}
}

View File

@@ -0,0 +1,61 @@
<?php
namespace Faker\Provider\cs_CZ;
/**
* Czech months and days without setting locale
*/
class DateTime extends \Faker\Provider\DateTime
{
protected static $days = array(
'neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'
);
protected static $months = array(
'leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec',
'srpen', 'září', 'říjen', 'listopad', 'prosinec'
);
protected static $monthsGenitive = array(
'ledna', 'února', 'března', 'dubna', 'května', 'června', 'července',
'srpna', 'září', 'října', 'listopadu', 'prosince'
);
protected static $formattedDateFormat = array(
'{{dayOfMonth}}. {{monthNameGenitive}} {{year}}',
);
public static function monthName($max = 'now')
{
return static::$months[parent::month($max) - 1];
}
public static function monthNameGenitive($max = 'now')
{
return static::$monthsGenitive[parent::month($max) - 1];
}
public static function dayOfWeek($max = 'now')
{
return static::$days[static::dateTime($max)->format('w')];
}
/**
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
* @return string
* @example '2'
*/
public static function dayOfMonth($max = 'now')
{
return static::dateTime($max)->format('j');
}
/**
* Full date with inflected month
* @return string
* @example '16. listopadu 2003'
*/
public function formattedDate()
{
$format = static::randomElement(static::$formattedDateFormat);
return $this->generator->parse($format);
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\cs_CZ;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'seznam.cz', 'atlas.cz', 'centrum.cz', 'email.cz', 'post.cz');
protected static $tld = array('cz', 'cz', 'cz', 'cz', 'cz', 'cz', 'com', 'info', 'net', 'org');
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\cs_CZ;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'CZ', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

View File

@@ -0,0 +1,473 @@
<?php
namespace Faker\Provider\cs_CZ;
class Person extends \Faker\Provider\Person
{
protected static $lastNameFormat = array(
'{{lastNameMale}}',
'{{lastNameFemale}}',
);
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{titleMale}} {{firstNameMale}} {{lastNameMale}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{titleFemale}} {{firstNameFemale}} {{lastNameFemale}}',
);
protected static $firstNameMale = array(
'Adam', 'Aleš', 'Alois', 'Antonín', 'Bohumil', 'Bohuslav', 'Dagmar',
'Dalibor', 'Daniel', 'David', 'Dominik', 'Dušan', 'Eduard', 'Emil',
'Filip', 'František', 'Ilona', 'Ivan', 'Ivo', 'Jakub', 'Jan', 'Ján',
'Jaromír', 'Jaroslav', 'Jindřich', 'Jiří', 'Josef', 'Jozef', 'Kamil',
'Karel', 'Kryštof', 'Ladislav', 'Libor', 'Lubomír', 'Luboš', 'Luděk',
'Ludvík', 'Lukáš', 'Marcel', 'Marek', 'Martin', 'Matěj', 'Matyáš',
'Michael', 'Michal', 'Milan', 'Miloslav', 'Miloš', 'Miroslav',
'Oldřich', 'Ondřej', 'Patrik', 'Pavel', 'Peter', 'Petr', 'Radek',
'Radim', 'Radomír', 'René', 'Richard', 'Robert', 'Roman', 'Rostislav',
'Rudolf', 'Stanislav', 'Šimon', 'Štefan', 'Štěpán', 'Tomáš',
'Václav', 'Vasyl', 'Viktor', 'Vít', 'Vítězslav', 'Vladimír',
'Vladislav', 'Vlastimil', 'Vojtěch', 'Zbyněk', 'Zdeněk'
);
protected static $firstNameFemale = array(
'Adéla', 'Alena', 'Alžběta', 'Andrea', 'Aneta', 'Anežka', 'Anna',
'Barbora', 'Blanka', 'Božena', 'Dana', 'Daniela', 'Denisa', 'Dominika',
'Eliška', 'Emilie', 'Eva', 'Františka', 'Gabriela', 'Hana', 'Helena',
'Irena', 'Iva', 'Ivana', 'Iveta', 'Jana', 'Jarmila', 'Jaroslava',
'Jindřiška', 'Jiřina', 'Jitka', 'Kamila', 'Karolína', 'Kateřina',
'Klára', 'Kristýna', 'Lenka', 'Libuše', 'Lucie', 'Ludmila', 'Marcela',
'Mária', 'Marie', 'Markéta', 'Marta', 'Martina', 'Michaela', 'Milada',
'Milena', 'Miloslava', 'Miluše', 'Miroslava', 'Monika', 'Naděžda',
'Natálie', 'Nela', 'Nikola', 'Olga', 'Pavla', 'Pavlína', 'Petra',
'Radka', 'Renata', 'Renáta', 'Romana', 'Růžena', 'Simona', 'Soňa',
'Stanislava', 'Šárka', 'Štěpánka', 'Tereza', 'Vendula', 'Věra',
'Veronika', 'Vladimíra', 'Vlasta', 'Zdenka', 'Zdeňka', 'Zdeňka',
'Zuzana'
);
protected static $lastNameMale = array(
'Adam', 'Adamec', 'Adámek', 'Albrecht', 'Ambrož', 'Anděl', 'Andrle',
'Antoš', 'Bajer', 'Baláž', 'Balcar', 'Balog', 'Baloun', 'Barák',
'Baran', 'Bareš', 'Bárta', 'Barták', 'Bartoň', 'Bartoš',
'Bartošek', 'Bartůněk', 'Bašta', 'Bauer', 'Bayer', 'Bažant',
'Bečka', 'Bečvář', 'Bednář', 'Bednařík', 'Bělohlávek',
'Benda', 'Beneš', 'Beran', 'Beránek', 'Berger', 'Berka', 'Berky',
'Bernard', 'Bezděk', 'Bílek', 'Bílý', 'Bína', 'Bittner',
'Blaha', 'Bláha', 'Blažek', 'Blecha', 'Bobek', 'Boček', 'Boháč',
'Boháček', 'Böhm', 'Borovička', 'Bouček', 'Bouda', 'Bouška',
'Brabec', 'Brabenec', 'Brada', 'Bradáč', 'Braun', 'Brázda',
'Brázdil', 'Brejcha', 'Brož', 'Brožek', 'Brychta', 'Březina',
'Bříza', 'Bubeník', 'Buček', 'Buchta', 'Burda', 'Bureš', 'Burian',
'Buriánek', 'Byrtus', 'Caha', 'Cibulka', 'Cihlář', 'Císař', 'Coufal',
'Čada', 'Čáp', 'Čapek', 'Čech', 'Čejka', 'Čermák', 'Černík',
'Černohorský', 'Černoch', 'Černý', 'Červeňák', 'Červenka',
'Červený', 'Červinka', 'Čihák', 'Čížek', 'Čonka', 'Čurda',
'Daněk', 'Daniel', 'Daniš', 'David', 'Dědek', 'Dittrich', 'Diviš',
'Dlouhý', 'Dobeš', 'Dobiáš', 'Dobrovolný', 'Dočekal', 'Dočkal',
'Dohnal', 'Dokoupil', 'Doleček', 'Dolejš', 'Dolejší', 'Doležal',
'Doležel', 'Doskočil', 'Dostál', 'Doubek', 'Doubrava', 'Douša',
'Drábek', 'Drozd', 'Dubský', 'Duda', 'Dudek', 'Dufek', 'Duchoň',
'Dunka', 'Dušek', 'Dvorský', 'Dvořáček', 'Dvořák', 'Eliáš',
'Erben', 'Fabián', 'Fanta', 'Farkaš', 'Fejfar', 'Fencl', 'Ferenc',
'Fiala', 'Fiedler', 'Filip', 'Fischer', 'Fišer', 'Florián', 'Fojtík',
'Foltýn', 'Formánek', 'Forman', 'Fořt', 'Fousek', 'Franc', 'Franěk',
'Frank', 'Fridrich', 'Frydrych', 'Fučík', 'Fuchs', 'Fuksa', 'Gábor',
'Gabriel', 'Gajdoš', 'Gregor', 'Gruber', 'Grundza', 'Grygar', 'Hájek',
'Hajný', 'Hála', 'Hampl', 'Hanáček', 'Hána', 'Hanák', 'Hanousek',
'Hanus', 'Hanuš', 'Hanzal', 'Hanzl', 'Hanzlík', 'Hartman', 'Hašek',
'Havel', 'Havelka', 'Havlíček', 'Havlík', 'Havránek', 'Heczko',
'Heger', 'Hejda', 'Hejduk', 'Hejl', 'Hejna', 'Hendrych', 'Herman',
'Heřmánek', 'Heřman', 'Hladík', 'Hladký', 'Hlaváček', 'Hlaváč',
'Hlavatý', 'Hlávka', 'Hloušek', 'Hoffmann', 'Hofman', 'Holan',
'Holas', 'Holec', 'Holeček', 'Holík', 'Holoubek', 'Holub', 'Holý',
'Homola', 'Homolka', 'Horáček', 'Hora', 'Horák', 'Horký', 'Horňák',
'Horníček', 'Horník', 'Horský', 'Horváth', 'Horvát', 'Hořejší',
'Hošek', 'Houdek', 'Houška', 'Hovorka', 'Hrabal', 'Hrabovský',
'Hradecký', 'Hradil', 'Hrbáček', 'Hrbek', 'Hrdina', 'Hrdlička',
'Hrdý', 'Hrnčíř', 'Hroch', 'Hromádka', 'Hron', 'Hrubeš', 'Hrubý',
'Hruška', 'Hrůza', 'Hubáček', 'Hudec', 'Hudeček', 'Hůlka', 'Huml',
'Husák', 'Hušek', 'Hýbl', 'Hynek', 'Chaloupka', 'Chalupa', 'Charvát',
'Chládek', 'Chlup', 'Chmelař', 'Chmelík', 'Chovanec', 'Chromý',
'Chudoba', 'Chvátal', 'Chvojka', 'Chytil', 'Jahoda', 'Jakeš',
'Jakl', 'Jakoubek', 'Jakubec', 'Janáček', 'Janák', 'Janata',
'Janča', 'Jančík', 'Janda', 'Janeček', 'Janečka', 'Janíček',
'Janík', 'Janků', 'Janota', 'Janoušek', 'Janovský', 'Jansa',
'Jánský', 'Jareš', 'Jaroš', 'Jašek', 'Javůrek', 'Jedlička',
'Jech', 'Jelen', 'Jelínek', 'Jeníček', 'Jeřábek', 'Ježek', 'Jež',
'Jílek', 'Jindra', 'Jíra', 'Jirák', 'Jiránek', 'Jirásek', 'Jirka',
'Jirků', 'Jiroušek', 'Jirsa', 'Jiřík', 'John', 'Jonáš', 'Junek',
'Jurčík', 'Jurečka', 'Juřica', 'Juřík', 'Kabát', 'Kačírek',
'Kadeřábek', 'Kadlec', 'Kafka', 'Kaiser', 'Kaláb', 'Kala', 'Kalaš',
'Kalina', 'Kalivoda', 'Kalousek', 'Kalous', 'Kameník', 'Kaňa',
'Kaňka', 'Kantor', 'Kaplan', 'Karásek', 'Karas', 'Karban', 'Karel',
'Karlík', 'Kasal', 'Kašík', 'Kašpárek', 'Kašpar', 'Kavka', 'Kazda',
'Kindl', 'Klečka', 'Klein', 'Klement', 'Klíma', 'Kliment', 'Klimeš',
'Klouček', 'Klouda', 'Knap', 'Knotek', 'Kocián', 'Kocman', 'Kocourek',
'Kohoutek', 'Kohout', 'Koch', 'Koláček', 'Kolařík', 'Kolář',
'Kolek', 'Kolman', 'Komárek', 'Komínek', 'Konečný', 'Koníček',
'Kopal', 'Kopecký', 'Kopeček', 'Kopečný', 'Kopřiva', 'Korbel',
'Kořínek', 'Kosík', 'Kosina', 'Kos', 'Kostka', 'Košťál', 'Kotas',
'Kotek', 'Kotlár', 'Kotrba', 'Kouba', 'Koubek', 'Koudela', 'Koudelka',
'Koukal', 'Kouřil', 'Koutný', 'Kováč', 'Kovařík', 'Kovářík',
'Kovář', 'Kozák', 'Kozel', 'Krajíček', 'Králíček', 'Králík',
'Král', 'Krátký', 'Kratochvíl', 'Kraus', 'Krčmář', 'Krejčík',
'Krejčí', 'Krejčíř', 'Krištof', 'Kropáček', 'Kroupa', 'Krupa',
'Krupička', 'Krupka', 'Křeček', 'Křenek', 'Křivánek', 'Křížek',
'Kříž', 'Kuba', 'Kubálek', 'Kubánek', 'Kubát', 'Kubec', 'Kubelka',
'Kubeš', 'Kubica', 'Kubíček', 'Kubík', 'Kubín', 'Kubiš', 'Kuča',
'Kučera', 'Kudláček', 'Kudrna', 'Kuchař', 'Kuchta', 'Kukla',
'Kulhánek', 'Kulhavý', 'Kunc', 'Kuneš', 'Kupec', 'Kupka', 'Kurka',
'Kužel', 'Kvapil', 'Kvasnička', 'Kyncl', 'Kysela', 'Lacina', 'Lacko',
'Lakatoš', 'Landa', 'Langer', 'Lang', 'Langr', 'Látal', 'Lavička',
'Lebeda', 'Levý', 'Líbal', 'Linhart', 'Liška', 'Lorenc', 'Louda',
'Ludvík', 'Lukáč', 'Lukášek', 'Lukáš', 'Lukeš', 'Macák', 'Macek',
'Macura', 'Macháček', 'Machač', 'Macháč', 'Machala', 'Machálek',
'Mácha', 'Mach', 'Majer', 'Maleček', 'Málek', 'Malík', 'Malina',
'Malý', 'Maňák', 'Mareček', 'Marek', 'Mareš', 'Maršálek',
'Maršík', 'Martinec', 'Martinek', 'Martínek', 'Mařík', 'Masopust',
'Mašek', 'Matějíček', 'Matějka', 'Matoušek', 'Matouš', 'Matula',
'Matuška', 'Matyáš', 'Matys', 'Maxa', 'Mayer', 'Mazánek', 'Medek',
'Melichar', 'Mencl', 'Menšík', 'Merta', 'Mička', 'Michalec',
'Michálek', 'Michalík', 'Michal', 'Michna', 'Mika', 'Míka', 'Mikeš',
'Miko', 'Mikula', 'Mikulášek', 'Minařík', 'Minář', 'Mirga',
'Mládek', 'Mlčoch', 'Mlejnek', 'Mojžíš', 'Mokrý', 'Molnár',
'Moravec', 'Morávek', 'Motl', 'Motyčka', 'Moučka', 'Moudrý',
'Mráček', 'Mrázek', 'Mráz', 'Mrkvička', 'Mucha', 'Müller',
'Műller', 'Musil', 'Mužík', 'Myška', 'Nagy', 'Najman', 'Navrátil',
'Nečas', 'Nedbal', 'Nedoma', 'Nedvěd', 'Nejedlý', 'Němec',
'Němeček', 'Nesvadba', 'Nešpor', 'Neubauer', 'Neuman', 'Neumann',
'Nguyen', 'Nguyen', 'Nosek', 'Nováček', 'Novák', 'Novosad', 'Novotný',
'Nový', 'Odehnal', 'Oláh', 'Oliva', 'Ondráček', 'Ondra', 'Orság',
'Otáhal', 'Paleček', 'Pánek', 'Papež', 'Pařízek', 'Pašek',
'Pátek', 'Patočka', 'Paul', 'Pavelek', 'Pavelka', 'Pavel', 'Pavlas',
'Pavlica', 'Pavlíček', 'Pavlík', 'Pavlů', 'Pazdera', 'Pecka',
'Pecháček', 'Pecha', 'Pech', 'Pekárek', 'Pekař', 'Pelc', 'Pelikán',
'Pernica', 'Peroutka', 'Peřina', 'Pešek', 'Peška', 'Pešta',
'Peterka', 'Petrák', 'Petráš', 'Petr', 'Petrů', 'Petříček',
'Petřík', 'Pham', 'Pícha', 'Pilař', 'Pilát', 'Píša', 'Pivoňka',
'Plaček', 'Plachý', 'Plšek', 'Pluhař', 'Podzimek', 'Pohl', 'Pokorný',
'Poláček', 'Polách', 'Polák', 'Polanský', 'Polášek', 'Polívka',
'Popelka', 'Pospíchal', 'Pospíšil', 'Potůček', 'Pour', 'Prachař',
'Prášek', 'Pražák', 'Prchal', 'Procházka', 'Prokeš', 'Prokop',
'Prošek', 'Provazník', 'Průcha', 'Průša', 'Přibyl', 'Příhoda',
'Přikryl', 'Pšenička', 'Ptáček', 'Rác', 'Rada', 'Rak', 'Rambousek',
'Raška', 'Rataj', 'Remeš', 'Rezek', 'Richter', 'Richtr', 'Roubal',
'Rous', 'Rozsypal', 'Rudolf', 'Růžek', 'Růžička', 'Ryba', 'Rybář',
'Rýdl', 'Ryšavý', 'Řeháček', 'Řehák', 'Řehoř', 'Řezáč',
'Řezníček', 'Říha', 'Sadílek', 'Samek', 'Sedláček', 'Sedlák',
'Sedlář', 'Sehnal', 'Seidl', 'Seifert', 'Sekanina', 'Semerád',
'Severa', 'Schejbal', 'Schmidt', 'Schneider', 'Schwarz', 'Sikora',
'Sivák', 'Skácel', 'Skala', 'Skála', 'Skalický', 'Sklenář',
'Skopal', 'Skořepa', 'Skřivánek', 'Slabý', 'Sládek', 'Sladký',
'Sláma', 'Slanina', 'Slavíček', 'Slavík', 'Slezák', 'Slováček',
'Slovák', 'Sluka', 'Smejkal', 'Smékal', 'Smetana', 'Smola', 'Smolík',
'Smolka', 'Smrčka', 'Smrž', 'Smutný', 'Sobek', 'Sobotka', 'Sochor',
'Sojka', 'Sokol', 'Sommer', 'Souček', 'Soukup', 'Sova', 'Spáčil',
'Spurný', 'Srb', 'Staněk', 'Stárek', 'Starý', 'Stehlík', 'Steiner',
'Stejskal', 'Stibor', 'Stoklasa', 'Straka', 'Stránský', 'Strejček',
'Strnad', 'Strouhal', 'Studený', 'Studnička', 'Stuchlík',
'Stupka', 'Suchánek', 'Suchomel', 'Suchý', 'Suk', 'Svačina',
'Svatoň', 'Svatoš', 'Světlík', 'Sviták', 'Svoboda', 'Svozil',
'Sýkora', 'Synek', 'Syrový', 'Šafařík', 'Šafář', 'Šafránek',
'Šálek', 'Šanda', 'Šašek', 'Šebek', 'Šebela', 'Šebesta', 'Šeda',
'Šedivý', 'Šenk', 'Šesták', 'Ševčík', 'Šilhavý', 'Šimáček',
'Šimák', 'Šimánek', 'Šíma', 'Šimčík', 'Šimeček', 'Šimek',
'Šimon', 'Šimůnek', 'Šindelář', 'Šindler', 'Šípek', 'Šíp',
'Široký', 'Šír', 'Šiška', 'Škoda', 'Škrabal', 'Šlechta',
'Šmejkal', 'Šmerda', 'Šmíd', 'Šnajdr', 'Šolc', 'Špaček',
'Špička', 'Šplíchal', 'Šrámek', 'Šťastný', 'Štefan',
'Štefek', 'Štefl', 'Štěpánek', 'Štěpán', 'Štěrba', 'Šubrt',
'Šulc', 'Šustr', 'Šváb', 'Švanda', 'Švarc', 'Švec', 'Švehla',
'Švejda', 'Švestka', 'Táborský', 'Tancoš', 'Teplý', 'Tesař',
'Tichý', 'Tománek', 'Toman', 'Tomášek', 'Tomáš', 'Tomeček',
'Tomek', 'Tomeš', 'Tóth', 'Tran', 'Trávníček', 'Trčka', 'Trnka',
'Trojan', 'Truhlář', 'Tříska', 'Tuček', 'Tůma', 'Tureček', 'Turek',
'Tvrdík', 'Tvrdý', 'Uher', 'Uhlíř', 'Ulrich', 'Urbanec', 'Urbánek',
'Urban', 'Vacek', 'Václavek', 'Václavík', 'Vaculík', 'Vágner',
'Vácha', 'Valášek', 'Vala', 'Válek', 'Valenta', 'Valeš', 'Váňa',
'Vančura', 'Vaněček', 'Vaněk', 'Vaníček', 'Varga', 'Vašák',
'Vašek', 'Vašíček', 'Vávra', 'Vavřík', 'Večeřa', 'Vejvoda',
'Verner', 'Veselý', 'Veverka', 'Vícha', 'Vilímek', 'Vinš', 'Víšek',
'Vitásek', 'Vítek', 'Vít', 'Vlach', 'Vlasák', 'Vlček', 'Vlk',
'Vobořil', 'Vodák', 'Vodička', 'Vodrážka', 'Vojáček', 'Vojta',
'Vojtěch', 'Vojtek', 'Vojtíšek', 'Vokoun', 'Volek', 'Volf', 'Volný',
'Vondráček', 'Vondrák', 'Vondra', 'Voráček', 'Vorel', 'Vorlíček',
'Voříšek', 'Votava', 'Votruba', 'Vrabec', 'Vrána', 'Vrba', 'Vrzal',
'Vybíral', 'Vydra', 'Vymazal', 'Vyskočil', 'Vysloužil', 'Wagner',
'Walter', 'Weber', 'Weiss', 'Winkler', 'Wolf', 'Zábranský', 'Zahrádka',
'Zahradník', 'Zach', 'Zajíc', 'Zajíček', 'Zálešák', 'Zámečník',
'Zapletal', 'Záruba', 'Zatloukal', 'Zavadil', 'Zavřel', 'Zbořil',
'Zdražil', 'Zedník', 'Zelenka', 'Zelený', 'Zelinka', 'Zemánek',
'Zeman', 'Zezula', 'Zíka', 'Zikmund', 'Zima', 'Zlámal', 'Zoubek',
'Zouhar', 'Zvěřina', 'Žáček', 'Žák', 'Žďárský', 'Žemlička',
'Žídek', 'Žižka', 'Žůrek'
);
protected static $lastNameFemale = array(
'Adamová', 'Adamcová', 'Adámková', 'Albrechtová', 'Ambrožová',
'Andělová', 'Andrlová', 'Antošová', 'Bajerová', 'Balážová',
'Balcarová', 'Balogová', 'Balounová', 'Baráková', 'Baranová',
'Barešová', 'Bártová', 'Bartáková', 'Bartoňová', 'Bartošová',
'Bartošková', 'Bartůňková', 'Baštová', 'Bauerová', 'Bayerová',
'Bažantová', 'Bečková', 'Bečvářová', 'Bednářová',
'Bednaříková', 'Bělohlávková', 'Bendová', 'Benešová',
'Beranová', 'Beránková', 'Bergerová', 'Berková', 'Berkyová',
'Bernardová', 'Bezděková', 'Bílková', 'Bílová', 'Bínová',
'Bittnerová', 'Blahová', 'Bláhová', 'Blažková', 'Blechová',
'Bobková', 'Bočková', 'Boháčová', 'Boháčková', 'Böhmová',
'Borovičková', 'Boučková', 'Boudová', 'Boušková', 'Brabcová',
'Brabencová', 'Bradová', 'Bradáčová', 'Braunová', 'Brázdová',
'Brázdilová', 'Brejchová', 'Brožová', 'Brožková', 'Brychtová',
'Březinová', 'Břízová', 'Bubeníková', 'Bučková', 'Buchtová',
'Burdová', 'Burešová', 'Burianová', 'Buriánková', 'Byrtusová',
'Cahová', 'Cibulková', 'Cihlářová', 'Císařová', 'Coufalová',
'Čadová', 'Čápová', 'Čapková', 'Čechová', 'Čejková',
'Čermáková', 'Černíková', 'Černohorská', 'Černochová',
'Černá', 'Červeňáková', 'Červenková', 'Červená', 'Červinková',
'Čiháková', 'Čížková', 'Čonková', 'Čurdová', 'Daňková',
'Danielová', 'Danišová', 'Davidová', 'Dědková', 'Dittrichová',
'Divišová', 'Dlouhá', 'Dobešová', 'Dobiášová', 'Dobrovolná',
'Dočekalová', 'Dočkalová', 'Dohnalová', 'Dokoupilová',
'Dolečková', 'Dolejšová', 'Dolejší', 'Doležalová', 'Doleželová',
'Doskočilová', 'Dostálová', 'Doubková', 'Doubravová', 'Doušová',
'Drábková', 'Drozdová', 'Dubská', 'Dudová', 'Dudková', 'Dufková',
'Duchoňová', 'Dunková', 'Dušková', 'Dvorská', 'Dvořáčková',
'Dvořáková', 'Eliášová', 'Erbenová', 'Fabiánová', 'Fantová',
'Farkašová', 'Fejfarová', 'Fenclová', 'Ferencová', 'Fialová',
'Fiedlerová', 'Filipová', 'Fischerová', 'Fišerová', 'Floriánová',
'Fojtíková', 'Foltýnová', 'Formánková', 'Formanová', 'Fořtová',
'Fousková', 'Francová', 'Fraňková', 'Franková', 'Fridrichová',
'Frydrychová', 'Fučíková', 'Fuchsová', 'Fuksová', 'Gáborová',
'Gabrielová', 'Gajdošová', 'Gregorová', 'Gruberová', 'Grundzová',
'Grygarová', 'Hájková', 'Hajná', 'Hálová', 'Hamplová',
'Hanáčková', 'Hánová', 'Hanáková', 'Hanousková', 'Hanusová',
'Hanušová', 'Hanzalová', 'Hanzlová', 'Hanzlíková', 'Hartmanová',
'Hašková', 'Havelová', 'Havelková', 'Havlíčková', 'Havlíková',
'Havránková', 'Heczková', 'Hegerová', 'Hejdová', 'Hejduková',
'Hejlová', 'Hejnová', 'Hendrychová', 'Hermanová', 'Heřmánková',
'Heřmanová', 'Hladíková', 'Hladká', 'Hlaváčková', 'Hlaváčová',
'Hlavatá', 'Hlávková', 'Hloušková', 'Hoffmannová', 'Hofmanová',
'Holanová', 'Holasová', 'Holcová', 'Holečková', 'Holíková',
'Holoubková', 'Holubová', 'Holá', 'Homolová', 'Homolková',
'Horáčková', 'Horová', 'Horáková', 'Horká', 'Horňáková',
'Horníčková', 'Horníková', 'Horská', 'Horváthová', 'Horvátová',
'Hořejšíová', 'Hošková', 'Houdková', 'Houšková', 'Hovorková',
'Hrabalová', 'Hrabovská', 'Hradecká', 'Hradilová', 'Hrbáčková',
'Hrbková', 'Hrdinová', 'Hrdličková', 'Hrdá', 'Hrnčířová',
'Hrochová', 'Hromádková', 'Hronová', 'Hrubešová', 'Hrubá',
'Hrušková', 'Hrůzová', 'Hubáčková', 'Hudcová', 'Hudečková',
'Hůlková', 'Humlová', 'Husáková', 'Hušková', 'Hýblová',
'Hynková', 'Chaloupková', 'Chalupová', 'Charvátová', 'Chládková',
'Chlupová', 'Chmelařová', 'Chmelíková', 'Chovancová', 'Chromá',
'Chudobová', 'Chvátalová', 'Chvojková', 'Chytilová', 'Jahodová',
'Jakešová', 'Jaklová', 'Jakoubková', 'Jakubcová', 'Janáčková',
'Janáková', 'Janatová', 'Jančová', 'Jančíková', 'Jandová',
'Janečková', 'Janečková', 'Janíčková', 'Janíková', 'Janková',
'Janotová', 'Janoušková', 'Janovská', 'Jansová', 'Jánská',
'Jarešová', 'Jarošová', 'Jašková', 'Javůrková', 'Jedličková',
'Jechová', 'Jelenová', 'Jelínková', 'Jeníčková', 'Jeřábková',
'Ježková', 'Ježová', 'Jílková', 'Jindrová', 'Jírová',
'Jiráková', 'Jiránková', 'Jirásková', 'Jirková', 'Jirková',
'Jiroušková', 'Jirsová', 'Jiříková', 'Johnová', 'Jonášová',
'Junková', 'Jurčíková', 'Jurečková', 'Juřicová', 'Juříková',
'Kabátová', 'Kačírková', 'Kadeřábková', 'Kadlcová', 'Kafková',
'Kaiserová', 'Kalábová', 'Kalová', 'Kalašová', 'Kalinová',
'Kalivodová', 'Kalousková', 'Kalousová', 'Kameníková', 'Kaňová',
'Kaňková', 'Kantorová', 'Kaplanová', 'Karásková', 'Karasová',
'Karbanová', 'Karelová', 'Karlíková', 'Kasalová', 'Kašíková',
'Kašpárková', 'Kašparová', 'Kavková', 'Kazdová', 'Kindlová',
'Klečková', 'Kleinová', 'Klementová', 'Klímová', 'Klimentová',
'Klimešová', 'Kloučková', 'Kloudová', 'Knapová', 'Knotková',
'Kociánová', 'Kocmanová', 'Kocourková', 'Kohoutková', 'Kohoutová',
'Kochová', 'Koláčková', 'Kolaříková', 'Kolářová', 'Kolková',
'Kolmanová', 'Komárková', 'Komínková', 'Konečná', 'Koníčková',
'Kopalová', 'Kopecká', 'Kopečková', 'Kopečná', 'Kopřivová',
'Korbelová', 'Kořínková', 'Kosíková', 'Kosinová', 'Kosová',
'Kostková', 'Košťálová', 'Kotasová', 'Kotková', 'Kotlárová',
'Kotrbová', 'Koubová', 'Koubková', 'Koudelová', 'Koudelková',
'Koukalová', 'Kouřilová', 'Koutná', 'Kováčová', 'Kovaříková',
'Kováříková', 'Kovářová', 'Kozáková', 'Kozelová',
'Krajíčková', 'Králíčková', 'Králíková', 'Králová',
'Krátká', 'Kratochvílová', 'Krausová', 'Krčmářová',
'Krejčíková', 'Krejčová', 'Krejčířová', 'Krištofová',
'Kropáčková', 'Kroupová', 'Krupová', 'Krupičková', 'Krupková',
'Křečková', 'Křenková', 'Křivánková', 'Křížková',
'Křížová', 'Kubová', 'Kubálková', 'Kubánková', 'Kubátová',
'Kubcová', 'Kubelková', 'Kubešová', 'Kubicová', 'Kubíčková',
'Kubíková', 'Kubínová', 'Kubišová', 'Kučová', 'Kučerová',
'Kudláčková', 'Kudrnová', 'Kuchařová', 'Kuchtová', 'Kuklová',
'Kulhánková', 'Kulhavá', 'Kuncová', 'Kunešová', 'Kupcová',
'Kupková', 'Kurková', 'Kuželová', 'Kvapilová', 'Kvasničková',
'Kynclová', 'Kyselová', 'Lacinová', 'Lacková', 'Lakatošová',
'Landová', 'Langerová', 'Langová', 'Langrová', 'Látalová',
'Lavičková', 'Lebedová', 'Levá', 'Líbalová', 'Linhartová',
'Lišková', 'Lorencová', 'Loudová', 'Ludvíková', 'Lukáčová',
'Lukášková', 'Lukášová', 'Lukešová', 'Macáková', 'Macková',
'Macurová', 'Macháčková', 'Machačová', 'Macháčová', 'Machalová',
'Machálková', 'Máchová', 'Machová', 'Majerová', 'Malečková',
'Málková', 'Malíková', 'Malinová', 'Malá', 'Maňáková',
'Marečková', 'Marková', 'Marešová', 'Maršálková',
'Maršíková', 'Martincová', 'Martinková', 'Martínková',
'Maříková', 'Masopustová', 'Mašková', 'Matějíčková',
'Matějková', 'Matoušková', 'Matoušová', 'Matulová', 'Matušková',
'Matyášová', 'Matysová', 'Maxová', 'Mayerová', 'Mazánková',
'Medková', 'Melicharová', 'Menclová', 'Menšíková', 'Mertová',
'Mičková', 'Michalcová', 'Michálková', 'Michalíková',
'Michalová', 'Michnová', 'Miková', 'Míková', 'Mikešová',
'Miková', 'Mikulová', 'Mikulášková', 'Minaříková', 'Minářová',
'Mirgová', 'Mládková', 'Mlčochová', 'Mlejnková', 'Mojžíšová',
'Mokrá', 'Molnárová', 'Moravcová', 'Morávková', 'Motlová',
'Motyčková', 'Moučková', 'Moudrá', 'Mráčková', 'Mrázková',
'Mrázová', 'Mrkvičková', 'Muchová', 'Müllerová', 'Műllerová',
'Musilová', 'Mužíková', 'Myšková', 'Nagyová', 'Najmanová',
'Navrátilová', 'Nečasová', 'Nedbalová', 'Nedomová', 'Nedvědová',
'Nejedlá', 'Němcová', 'Němečková', 'Nesvadbová', 'Nešporová',
'Neubauerová', 'Neumanová', 'Neumannová', 'Nguyenová', 'Vanová',
'Nosková', 'Nováčková', 'Nováková', 'Novosadová', 'Novotná',
'Nová', 'Odehnalová', 'Oláhová', 'Olivová', 'Ondráčková',
'Ondrová', 'Orságová', 'Otáhalová', 'Palečková', 'Pánková',
'Papežová', 'Pařízková', 'Pašková', 'Pátková', 'Patočková',
'Paulová', 'Pavelková', 'Pavelková', 'Pavelová', 'Pavlasová',
'Pavlicová', 'Pavlíčková', 'Pavlíková', 'Pavlová', 'Pazderová',
'Pecková', 'Pecháčková', 'Pechová', 'Pechová', 'Pekárková',
'Pekařová', 'Pelcová', 'Pelikánová', 'Pernicová', 'Peroutková',
'Peřinová', 'Pešková', 'Pešková', 'Peštová', 'Peterková',
'Petráková', 'Petrášová', 'Petrová', 'Petrová', 'Petříčková',
'Petříková', 'Phamová', 'Píchová', 'Pilařová', 'Pilátová',
'Píšová', 'Pivoňková', 'Plačková', 'Plachá', 'Plšková',
'Pluhařová', 'Podzimková', 'Pohlová', 'Pokorná', 'Poláčková',
'Poláchová', 'Poláková', 'Polanská', 'Polášková', 'Polívková',
'Popelková', 'Pospíchalová', 'Pospíšilová', 'Potůčková',
'Pourová', 'Prachařová', 'Prášková', 'Pražáková',
'Prchalová', 'Procházková', 'Prokešová', 'Prokopová',
'Prošková', 'Provazníková', 'Průchová', 'Průšová',
'Přibylová', 'Příhodová', 'Přikrylová', 'Pšeničková',
'Ptáčková', 'Rácová', 'Radová', 'Raková', 'Rambousková',
'Rašková', 'Ratajová', 'Remešová', 'Rezková', 'Richterová',
'Richtrová', 'Roubalová', 'Rousová', 'Rozsypalová', 'Rudolfová',
'Růžková', 'Růžičková', 'Rybová', 'Rybářová', 'Rýdlová',
'Ryšavá', 'Řeháčková', 'Řeháková', 'Řehořová', 'Řezáčová',
'Řezníčková', 'Říhová', 'Sadílková', 'Samková', 'Sedláčková',
'Sedláková', 'Sedlářová', 'Sehnalová', 'Seidlová', 'Seifertová',
'Sekaninová', 'Semerádová', 'Severová', 'Schejbalová', 'Schmidtová',
'Schneiderová', 'Schwarzová', 'Sikorová', 'Siváková', 'Skácelová',
'Skalová', 'Skálová', 'Skalická', 'Sklenářová', 'Skopalová',
'Skořepová', 'Skřivánková', 'Slabá', 'Sládková', 'Sladká',
'Slámová', 'Slaninová', 'Slavíčková', 'Slavíková', 'Slezáková',
'Slováčková', 'Slováková', 'Sluková', 'Smejkalová', 'Smékalová',
'Smetanová', 'Smolová', 'Smolíková', 'Smolková', 'Smrčková',
'Smržová', 'Smutná', 'Sobková', 'Sobotková', 'Sochorová',
'Sojková', 'Sokolová', 'Sommerová', 'Součková', 'Soukupová',
'Sovová', 'Spáčilová', 'Spurná', 'Srbová', 'Staňková',
'Stárková', 'Stará', 'Stehlíková', 'Steinerová', 'Stejskalová',
'Stiborová', 'Stoklasová', 'Straková', 'Stránská', 'Strejčková',
'Strnadová', 'Strouhalová', 'Studená', 'Studničková',
'Stuchlíková', 'Stupková', 'Suchánková', 'Suchomelová', 'Suchá',
'Suková', 'Svačinová', 'Svatoňová', 'Svatošová', 'Světlíková',
'Svitáková', 'Svobodová', 'Svozilová', 'Sýkorová', 'Synková',
'Syrová', 'Šafaříková', 'Šafářová', 'Šafránková',
'Šálková', 'Šandová', 'Šašková', 'Šebková', 'Šebelová',
'Šebestová', 'Šedová', 'Šedivá', 'Šenková', 'Šestáková',
'Ševčíková', 'Šilhavá', 'Šimáčková', 'Šimáková',
'Šimánková', 'Šímová', 'Šimčíková', 'Šimečková', 'Šimková',
'Šimonová', 'Šimůnková', 'Šindelářová', 'Šindlerová',
'Šípková', 'Šípová', 'Široká', 'Šírová', 'Šišková',
'Škodová', 'Škrabalová', 'Šlechtová', 'Šmejkalová', 'Šmerdová',
'Šmídová', 'Šnajdrová', 'Šolcová', 'Špačková', 'Špičková',
'Šplíchalová', 'Šrámková', 'Šťastná', 'Štefanová',
'Štefková', 'Šteflová', 'Štěpánková', 'Štěpánová',
'Štěrbová', 'Šubrtová', 'Šulcová', 'Šustrová', 'Švábová',
'Švandová', 'Švarcová', 'Švecová', 'Švehlová', 'Švejdová',
'Švestková', 'Táborská', 'Tancošová', 'Teplá', 'Tesařová',
'Tichá', 'Tománková', 'Tomanová', 'Tomášková', 'Tomášová',
'Tomečková', 'Tomková', 'Tomešová', 'Tóthová', 'Tranová',
'Trávníčková', 'Trčková', 'Trnková', 'Trojanová', 'Truhlářová',
'Třísková', 'Tučková', 'Tůmová', 'Turečková', 'Turková',
'Tvrdíková', 'Tvrdá', 'Uherová', 'Uhlířová', 'Ulrichová',
'Urbancová', 'Urbánková', 'Urbanová', 'Vacková', 'Václavková',
'Václavíková', 'Vaculíková', 'Vágnerová', 'Váchová',
'Valášková', 'Valová', 'Válková', 'Valentová', 'Valešová',
'Váňová', 'Vančurová', 'Vaněčková', 'Vaňková', 'Vaníčková',
'Vargová', 'Vašáková', 'Vašková', 'Vašíčková', 'Vávrová',
'Vavříková', 'Večeřová', 'Vejvodová', 'Vernerová', 'Veselá',
'Veverková', 'Víchová', 'Vilímková', 'Vinšová', 'Víšková',
'Vitásková', 'Vítková', 'Vítová', 'Vlachová', 'Vlasáková',
'Vlčková', 'Vlková', 'Vobořilová', 'Vodáková', 'Vodičková',
'Vodrážková', 'Vojáčková', 'Vojtová', 'Vojtěchová',
'Vojtková', 'Vojtíšková', 'Vokounová', 'Volková', 'Volfová',
'Volná', 'Vondráčková', 'Vondráková', 'Vondrová', 'Voráčková',
'Vorlová', 'Vorlíčková', 'Voříšková', 'Votavová', 'Votrubová',
'Vrabcová', 'Vránová', 'Vrbová', 'Vrzalová', 'Vybíralová',
'Vydrová', 'Vymazalová', 'Vyskočilová', 'Vysloužilová',
'Wagnerová', 'Walterová', 'Weberová', 'Weissová', 'Winklerová',
'Wolfová', 'Zábranská', 'Zahrádková', 'Zahradníková', 'Zachová',
'Zajícová', 'Zajíčková', 'Zálešáková', 'Zámečníková',
'Zapletalová', 'Zárubová', 'Zatloukalová', 'Zavadilová',
'Zavřelová', 'Zbořilová', 'Zdražilová', 'Zedníková', 'Zelenková',
'Zelená', 'Zelinková', 'Zemánková', 'Zemanová', 'Zezulová',
'Zíková', 'Zikmundová', 'Zimová', 'Zlámalová', 'Zoubková',
'Zouharová', 'Zvěřinová', 'Žáčková', 'Žáková', 'Žďárská',
'Žemličková', 'Žídková', 'Žižková', 'Žůrková'
);
protected static $title = array(
'Bc.', 'Ing.', 'MUDr.', 'MVDr.', 'Mgr.', 'JUDr.', 'PhDr.', 'RNDr.', 'doc.', 'Dr.'
);
public function title($gender = null)
{
return static::titleMale();
}
/**
* replaced by specific unisex Czech title
*/
public static function titleMale()
{
return static::randomElement(static::$title);
}
/**
* replaced by specific unisex Czech title
*/
public static function titleFemale()
{
return static::titleMale();
}
/**
* @param string|null $gender 'male', 'female' or null for any
* @example 'Albrecht'
*/
public function lastName($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::lastNameMale();
} elseif ($gender === static::GENDER_FEMALE) {
return static::lastNameFemale();
}
return $this->generator->parse(static::randomElement(static::$lastNameFormat));
}
public static function lastNameMale()
{
return static::randomElement(static::$lastNameMale);
}
public static function lastNameFemale()
{
return static::randomElement(static::$lastNameFemale);
}
}

View File

@@ -0,0 +1,14 @@
<?php
namespace Faker\Provider\cs_CZ;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'+420 ### ### ###',
'### ### ###',
'00420#########',
'+420#########',
'#########',
);
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,287 @@
<?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, called 'kommuner' in danish.
*/
protected static $kommuneNames = 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);
}
/**
* Randomly return a building number.
*
* @return string
*/
public static function buildingNumber()
{
return static::toUpper(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 kommune()
{
return static::randomElement(static::$kommuneNames);
}
/**
* Randomly return a real region name.
*
* @return string
*/
public static function region()
{
return static::randomElement(static::$regionNames);
}
}

View File

@@ -0,0 +1,70 @@
<?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');
/**
* @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60
*
* @var string CVR number format.
*/
protected static $cvrFormat = '%#######';
/**
* @link http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=60
*
* @var string P number (production number) format.
*/
protected static $pFormat = '%#########';
/**
* Generates a CVR number (8 digits).
*
* @return string
*/
public static function cvr()
{
return static::numerify(static::$cvrFormat);
}
/**
* Generates a P entity number (10 digits).
*
* @return string
*/
public static function p()
{
return static::numerify(static::$pFormat);
}
}

View File

@@ -0,0 +1,30 @@
<?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',
);
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\da_DK;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'DK', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

View File

@@ -0,0 +1,195 @@
<?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 $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{middleName}} {{lastName}}',
'{{firstNameMale}} {{middleName}} {{lastName}}',
'{{firstNameMale}} {{middleName}}-{{middleName}} {{lastName}}',
'{{firstNameMale}} {{middleName}} {{middleName}}-{{lastName}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{middleName}} {{lastName}}',
'{{firstNameFemale}} {{middleName}} {{lastName}}',
'{{firstNameFemale}} {{middleName}}-{{middleName}} {{lastName}}',
'{{firstNameFemale}} {{middleName}} {{middleName}}-{{lastName}}',
);
/**
* @var array Danish first names.
*/
protected static $firstNameMale = array(
'Aage', 'Adam', 'Adolf', 'Ahmad', 'Ahmed', 'Aksel', 'Albert', 'Alex', 'Alexander', 'Alf', 'Alfred', 'Ali', 'Allan',
'Anders', 'Andreas', 'Anker', 'Anton', 'Arne', 'Arnold', 'Arthur', 'Asbjørn', 'Asger', 'August', 'Axel', 'Benjamin',
'Benny', 'Bent', 'Bernhard', 'Birger', 'Bjarne', 'Bjørn', 'Bo', 'Brian', 'Bruno', 'Børge', 'Carl', 'Carlo',
'Carsten', 'Casper', 'Charles', 'Chris', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Dan', 'Daniel', 'David', 'Dennis',
'Ebbe', 'Edmund', 'Edvard', 'Egon', 'Einar', 'Ejvind', 'Elias', 'Emanuel', 'Emil', 'Erik', 'Erland', 'Erling',
'Ernst', 'Esben', 'Ferdinand', 'Finn', 'Flemming', 'Frank', 'Freddy', 'Frederik', 'Frits', 'Fritz', 'Frode', 'Georg',
'Gerhard', 'Gert', 'Gunnar', 'Gustav', 'Hans', 'Harald', 'Harry', 'Hassan', 'Heine', 'Heinrich', 'Helge', 'Helmer',
'Helmuth', 'Henning', 'Henrik', 'Henry', 'Herman', 'Hermann', 'Holger', 'Hugo', 'Ib', 'Ibrahim', 'Ivan', 'Jack',
'Jacob', 'Jakob', 'Jan', 'Janne', 'Jens', 'Jeppe', 'Jesper', 'Jimmi', 'Jimmy', 'Joachim', 'Johan', 'Johannes',
'John', 'Johnny', 'Jon', 'Jonas', 'Jonathan', 'Josef', 'Jul', 'Julius', 'Jørgen', 'Jørn', 'Kai', 'Kaj',
'Karl', 'Karlo', 'Karsten', 'Kasper', 'Kenneth', 'Kent', 'Kevin', 'Kjeld', 'Klaus', 'Knud', 'Kristian', 'Kristoffer',
'Kurt', 'Lars', 'Lasse', 'Leif', 'Lennart', 'Leo', 'Leon', 'Louis', 'Lucas', 'Lukas', 'Mads', 'Magnus',
'Malthe', 'Marc', 'Marcus', 'Marinus', 'Marius', 'Mark', 'Markus', 'Martin', 'Martinus', 'Mathias', 'Max', 'Michael',
'Mikael', 'Mike', 'Mikkel', 'Mogens', 'Mohamad', 'Mohamed', 'Mohammad', 'Morten', 'Nick', 'Nicklas', 'Nicolai', 'Nicolaj',
'Niels', 'Niklas', 'Nikolaj', 'Nils', 'Olaf', 'Olav', 'Ole', 'Oliver', 'Oscar', 'Oskar', 'Otto', 'Ove',
'Palle', 'Patrick', 'Paul', 'Peder', 'Per', 'Peter', 'Philip', 'Poul', 'Preben', 'Rasmus', 'Rene', 'René',
'Richard', 'Robert', 'Rolf', 'Rudolf', 'Rune', 'Sebastian', 'Sigurd', 'Simon', 'Simone', 'Steen', 'Stefan', 'Steffen',
'Sten', 'Stig', 'Sune', 'Sven', 'Svend', 'Søren', 'Tage', 'Theodor', 'Thomas', 'Thor', 'Thorvald', 'Tim',
'Tobias', 'Tom', 'Tommy', 'Tonny', 'Torben', 'Troels', 'Uffe', 'Ulrik', 'Vagn', 'Vagner', 'Valdemar', 'Vang',
'Verner', 'Victor', 'Viktor', 'Villy', 'Walther', 'Werner', 'Wilhelm', 'William', 'Willy', 'Åge', 'Bendt', 'Bjarke',
'Chr', 'Eigil', 'Ejgil', 'Ejler', 'Ejnar', 'Ejner', 'Evald', 'Folmer', 'Gunner', 'Gurli', 'Hartvig', 'Herluf', 'Hjalmar',
'Ingemann', 'Ingolf', 'Ingvard', 'Keld', 'Kresten', 'Laurids', 'Laurits', 'Lauritz', 'Ludvig', 'Lynge', 'Oluf', 'Osvald',
'Povl', 'Richardt', 'Sigfred', 'Sofus', 'Thorkild', 'Viggo', 'Vilhelm', 'Villiam',
);
protected static $firstNameFemale = array(
'Aase', 'Agathe', 'Agnes', 'Alberte', 'Alexandra', 'Alice', 'Alma', 'Amalie', 'Amanda', 'Andrea', 'Ane', 'Anette', 'Anita',
'Anja', 'Ann', 'Anna', 'Annalise', 'Anne', 'Anne-Lise', 'Anne-Marie', 'Anne-Mette', 'Annelise', 'Annette', 'Anni', 'Annie',
'Annika', 'Anny', 'Asta', 'Astrid', 'Augusta', 'Benedikte', 'Bente', 'Berit', 'Bertha', 'Betina', 'Bettina', 'Betty',
'Birgit', 'Birgitte', 'Birte', 'Birthe', 'Bitten', 'Bodil', 'Britt', 'Britta', 'Camilla', 'Carina', 'Carla', 'Caroline',
'Cathrine', 'Cecilie', 'Charlotte', 'Christa', 'Christen', 'Christiane', 'Christina', 'Christine', 'Clara', 'Conni', 'Connie', 'Conny',
'Dagmar', 'Dagny', 'Diana', 'Ditte', 'Dora', 'Doris', 'Dorte', 'Dorthe', 'Ebba', 'Edel', 'Edith', 'Eleonora',
'Eli', 'Elin', 'Eline', 'Elinor', 'Elisa', 'Elisabeth', 'Elise', 'Ella', 'Ellen', 'Ellinor', 'Elly', 'Elna',
'Elsa', 'Else', 'Elsebeth', 'Elvira', 'Emilie', 'Emma', 'Emmy', 'Erna', 'Ester', 'Esther', 'Eva', 'Evelyn',
'Frede', 'Frederikke', 'Freja', 'Frida', 'Gerda', 'Gertrud', 'Gitte', 'Grete', 'Grethe', 'Gudrun', 'Hanna', 'Hanne',
'Hardy', 'Harriet', 'Hedvig', 'Heidi', 'Helen', 'Helena', 'Helene', 'Helga', 'Helle', 'Henny', 'Henriette', 'Herdis',
'Hilda', 'Iben', 'Ida', 'Ilse', 'Ina', 'Inga', 'Inge', 'Ingeborg', 'Ingelise', 'Inger', 'Ingrid', 'Irene',
'Iris', 'Irma', 'Isabella', 'Jane', 'Janni', 'Jannie', 'Jeanette', 'Jeanne', 'Jenny', 'Jes', 'Jette', 'Joan',
'Johanna', 'Johanne', 'Jonna', 'Josefine', 'Josephine', 'Juliane', 'Julie', 'Jytte', 'Kaja', 'Kamilla', 'Karen', 'Karin',
'Karina', 'Karla', 'Karoline', 'Kate', 'Kathrine', 'Katja', 'Katrine', 'Ketty', 'Kim', 'Kirsten', 'Kirstine', 'Klara',
'Krista', 'Kristen', 'Kristina', 'Kristine', 'Laila', 'Laura', 'Laurine', 'Lea', 'Lena', 'Lene', 'Lilian', 'Lilli',
'Lillian', 'Lilly', 'Linda', 'Line', 'Lis', 'Lisa', 'Lisbet', 'Lisbeth', 'Lise', 'Liselotte', 'Lissi', 'Lissy',
'Liv', 'Lizzie', 'Lone', 'Lotte', 'Louise', 'Lydia', 'Lykke', 'Lærke', 'Magda', 'Magdalene', 'Mai', 'Maiken',
'Maj', 'Maja', 'Majbritt', 'Malene', 'Maren', 'Margit', 'Margrethe', 'Maria', 'Mariane', 'Marianne', 'Marie', 'Marlene',
'Martha', 'Martine', 'Mary', 'Mathilde', 'Matilde', 'Merete', 'Merethe', 'Meta', 'Mette', 'Mia', 'Michelle', 'Mie',
'Mille', 'Minna', 'Mona', 'Monica', 'Nadia', 'Nancy', 'Nanna', 'Nicoline', 'Nikoline', 'Nina', 'Ninna', 'Oda',
'Olga', 'Olivia', 'Orla', 'Paula', 'Pauline', 'Pernille', 'Petra', 'Pia', 'Poula', 'Ragnhild', 'Randi', 'Rasmine',
'Rebecca', 'Rebekka', 'Rigmor', 'Rikke', 'Rita', 'Rosa', 'Rose', 'Ruth', 'Sabrina', 'Sandra', 'Sanne', 'Sara',
'Sarah', 'Selma', 'Severin', 'Sidsel', 'Signe', 'Sigrid', 'Sine', 'Sofia', 'Sofie', 'Solveig', 'Solvejg', 'Sonja',
'Sophie', 'Stephanie', 'Stine', 'Susan', 'Susanne', 'Tanja', 'Thea', 'Theodora', 'Therese', 'Thi', 'Thyra', 'Tina',
'Tine', 'Tove', 'Trine', 'Ulla', 'Vera', 'Vibeke', 'Victoria', 'Viktoria', 'Viola', 'Vita', 'Vivi', 'Vivian',
'Winnie', 'Yrsa', 'Yvonne', 'Agnete', 'Agnethe', 'Alfrida', 'Alvilda', 'Anine', 'Bolette', 'Dorthea', 'Gunhild',
'Hansine', 'Inge-Lise', 'Jensine', 'Juel', 'Jørgine', 'Kamma', 'Kristiane', 'Maj-Britt', 'Margrete', 'Metha', 'Nielsine',
'Oline', 'Petrea', 'Petrine', 'Pouline', 'Ragna', 'Sørine', 'Thora', 'Valborg', 'Vilhelmine',
);
/**
* @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);
}
/**
* Randomly return a danish CPR number (Personnal identification number) format.
*
* @link http://cpr.dk/cpr/site.aspx?p=16
* @link http://en.wikipedia.org/wiki/Personal_identification_number_%28Denmark%29
*
* @return string
*/
public static function cpr()
{
$birthdate = new \DateTime('@' . mt_rand(0, time()));
return sprintf('%s-%s', $birthdate->format('dmy'), static::numerify('%###'));
}
}

View File

@@ -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########',
'## ## ## ##',
'#### ####',
'########',
);
}

View File

@@ -0,0 +1,99 @@
<?php
namespace Faker\Provider\de_AT;
class Address extends \Faker\Provider\Address
{
protected static $buildingNumber = array('###', '##', '#');
protected static $streetSuffixLong = array(
'Gasse', 'Platz', 'Ring', 'Straße', 'Weg',
);
protected static $streetSuffixShort = array(
'gasse', 'platz', 'ring', 'straße', 'weg',
);
protected static $postcode = array('####');
protected static $cityNames = array(
'Allentsteig', 'Altheim', 'Althofen', 'Amstetten', 'Ansfelden', 'Attnang-Puchheim',
'Bad Aussee', 'Bad Hall', 'Bad Ischl', 'Bad Leonfelden', 'Bad Radkersburg', 'Bad Sankt Leonhard im Lavanttal', 'Bad Vöslau', 'Baden', 'Bärnbach', 'Berndorf', 'Bischofshofen', 'Bleiburg', 'Bludenz', 'Braunau am Inn', 'Bregenz', 'Bruck an der Leitha', 'Bruck an der Mur',
'Deutsch-Wagram', 'Deutschlandsberg', 'Dornbirn', 'Drosendorf-Zissersdorf 1', 'Dürnstein',
'Ebenfurth', 'Ebreichsdorf', 'Eferding', 'Eggenburg', 'Eisenerz', 'Eisenstadt', 'Enns',
'Fehring', 'Feldbach', 'Feldkirch', 'Feldkirchen', 'Ferlach', 'Fischamend', 'Frauenkirchen', 'Freistadt', 'Friedberg', 'Friesach', 'Frohnleiten', 'Fürstenfeld',
'Gallneukirchen', 'Gänserndorf', 'Geras', 'Gerasdorf bei Wien', 'Gföhl', 'Gleisdorf', 'Gloggnitz', 'Gmünd', 'Gmünd in Kärnten', 'Gmunden', 'Graz', 'Grein', 'Grieskirchen', 'Groß-Enzersdorf', 'Groß-Gerungs', 'Groß-Siegharts', 'Güssing',
'Haag', 'Hainburg an der Donau', 'Hainfeld', 'Hall in Tirol', 'Hallein', 'Hardegg', 'Hartberg', 'Heidenreichstein', 'Hermagor-Pressegger See', 'Herzogenburg', 'Hohenems', 'Hollabrunn', 'Horn',
'Imst', 'Innsbruck',
'Jennersdorf', 'Judenburg',
'Kapfenberg', 'Kindberg', 'Kirchdorf an der Krems', 'Kirchschlag in der Buckligen Welt', 'Kitzbühel', 'Klagenfurt', 'Klosterneuburg', 'Knittelfeld', 'Köflach', 'Korneuburg', 'Krems an der Donau', 'Kufstein',
'Laa an der Thaya', 'Laakirchen', 'Landeck', 'Langenlois', 'Leibnitz', 'Leoben', 'Leonding', 'Lienz', 'Liezen', 'Lilienfeld', 'Linz', 'Litschau',
'Maissau', 'Mank', 'Mannersdorf am Leithagebirge', 'Marchegg', 'Marchtrenk', 'Mariazell', 'Mattersburg', 'Mattighofen', 'Mautern an der Donau', 'Melk', 'Mistelbach an der Zaya', 'Mödling', 'Murau', 'Mureck', 'Mürzzuschlag',
'Neufeld an der Leitha', 'Neulengbach', 'Neumarkt am Wallersee', 'Neunkirchen', 'Neusiedl am See',
'Oberndorf bei Salzburg', 'Oberpullendorf', 'Oberwart', 'Oberwälz',
'Perg', 'Peuerbach', 'Pinkafeld', 'Pöchlarn', 'Poysdorf', 'Pregarten', 'Pulkau', 'Purbach am Neusiedler See', 'Purkersdorf',
'Raabs an der Thaya', 'Radenthein', 'Radstadt', 'Rattenberg', 'Retz', 'Ried im Innkreis', 'Rohrbach in Oberösterreich', 'Rottenmann', 'Rust',
'Saalfelden am Steinernen Meer', 'Salzburg', 'Sankt Andrä im Lavanttal', 'Sankt Johann im Pongau', 'Sankt Pölten', 'Sankt Valentin', 'Sankt Veit an der Glan', 'Schärding', 'Scheibbs', 'Schladming', 'Schrattenthal', 'Schrems', 'Schwanenstadt', 'Schwaz', 'Schwechat', 'Seekirchen am Wallersee', 'Spittal an der Drau', 'Stadtschlaining', 'Steyr', 'Steyregg', 'Stockerau', 'Straßburg',
'Ternitz', 'Traiskirchen', 'Traismauer', 'Traun', 'Trieben', 'Trofaiach', 'Tulln an der Donau',
'Villach', 'Vils', 'Vöcklabruck', 'Voitsberg', 'Völkermarkt',
'Waidhofen an der Thaya', 'Waidhofen an der Ybbs', 'Weitra', 'Weiz', 'Wels', 'Wien', 'Wiener Neustadt', 'Wieselburg', 'Wilhelmsburg', 'Wolfsberg', 'Wolkersdorf', 'Wörgl',
'Ybbs an der Donau',
'Zell am See', 'Zeltweg', 'Zistersdorf', 'Zwettl',
);
protected static $country = array(
'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien', 'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa', 'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla', 'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba', 'Aserbaidschan', 'Australien', 'Ägypten', 'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien',
'Bahamas', 'Bahrain', 'Bangladesch', 'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana', 'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln', 'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam', 'Bulgarien', 'Burkina Faso', 'Burundi',
'Chile', 'China', 'Cookinseln', 'Costa Rica', 'Côte dIvoire',
'Demokratische Republik Kongo', 'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica', 'Dominikanische Republik', 'Dschibuti', 'Dänemark',
'Ecuador', 'El Salvador', 'Eritrea', 'Estland', 'Europäische Union',
'Falklandinseln', 'Fidschi', 'Finnland', 'Frankreich', 'Französisch-Guayana', 'Französisch-Polynesien', 'Französische Süd- und Antarktisgebiete', 'Färöer',
'Gabun', 'Gambia', 'Georgien', 'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard- und McDonald-Inseln', 'Honduras',
'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island', 'Isle of Man', 'Israel', 'Italien',
'Jamaika', 'Japan', 'Jemen', 'Jersey', 'Jordanien',
'Kaimaninseln', 'Kambodscha', 'Kamerun', 'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan', 'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien', 'Kuba', 'Kuwait',
'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia', 'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg',
'Madagaskar', 'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko', 'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte', 'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei', 'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande', 'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel', 'Norwegen', 'Nördliche Marianen',
'Oman', 'Osttimor', 'Österreich',
'Pakistan', 'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea', 'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal', 'Puerto Rico',
'Republik Korea', 'Republik Moldau', 'Ruanda', 'Rumänien', 'Russische Föderation', 'Réunion',
'Salomonen', 'Sambia', 'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz', 'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen', 'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien', 'Somalia', 'Sonderverwaltungszone Hongkong', 'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka', 'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia', 'St. Martin', 'St. Pierre und Miquelon', 'St. Vincent und die Grenadinen', 'Sudan', 'Suriname', 'Svalbard und Jan Mayen', 'Swasiland', 'Syrien', 'São Tomé und Príncipe', 'Südafrika', 'Südgeorgien und die Südlichen Sandwichinseln',
'Tadschikistan', 'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga', 'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien', 'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei',
'Uganda', 'Ukraine', 'Unbekannte oder ungültige Region', 'Ungarn', 'Uruguay', 'Usbekistan',
'Vanuatu', 'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate', 'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam',
'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara',
'Zentralafrikanische Republik', 'Zypern',
);
protected static $cityFormats = array(
'{{cityName}}',
);
protected static $streetNameFormats = array(
'{{lastName}}{{streetSuffixShort}}',
'{{firstName}}-{{lastName}}-{{streetSuffixLong}}'
);
protected static $streetAddressFormats = array(
'{{streetName}} {{buildingNumber}}',
);
protected static $addressFormats = array(
"{{streetAddress}}\n{{postcode}} {{city}}",
);
public function cityName()
{
return static::randomElement(static::$cityNames);
}
public function streetSuffixShort()
{
return static::randomElement(static::$streetSuffixShort);
}
public function streetSuffixLong()
{
return static::randomElement(static::$streetSuffixLong);
}
}

View File

@@ -0,0 +1,13 @@
<?php
namespace Faker\Provider\de_AT;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
'{{lastName}}',
);
protected static $companySuffix = array('AG', 'EWIV', 'Ges.m.b.H.', 'GmbH', 'KEG', 'KG', 'OEG', 'OG', 'OHG', 'SE');
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\de_AT;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('aon.at', 'chello.at', 'gmail.com', 'gmx.at', 'univie.ac.at');
protected static $tld = array('at', 'co.at', 'com', 'net', 'org');
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\de_AT;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'AT', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

View File

@@ -0,0 +1,116 @@
<?php
namespace Faker\Provider\de_AT;
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{titleMale}} {{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}} {{suffix}}',
'{{titleMale}} {{firstNameMale}} {{lastName}} {{suffix}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}} {{suffix}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
);
protected static $firstNameMale = array(
'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian', 'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain', 'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro', 'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha', 'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin', 'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole', 'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej', 'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony', 'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan', 'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno', 'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August', 'Auguste', 'Augustin', 'Aurelius', 'Axel',
'Balduin', 'Balthasar', 'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil', 'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame', 'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt', 'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett', 'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd', 'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram', 'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob', 'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian', 'Bruno', 'Bryan', 'Burkhard',
'Camillo', 'Camilo', 'Carl', 'Carlo', 'Carlos', 'Carol', 'Carsten', 'Cäsar', 'Casimir', 'Caspar', 'Cecil', 'Ceddric', 'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris', 'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy', 'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude', 'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff', 'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan', 'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper', 'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt', 'Curtis', 'Curtiz', 'Cyril', 'Cyrill',
'Damian', 'Damon', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius', 'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis', 'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick', 'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo', 'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello', 'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan', 'Dylan',
'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian', 'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele', 'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik', 'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik', 'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne', 'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra',
'Fabiano', 'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio', 'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico', 'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe', 'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand', 'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis', 'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian', 'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian', 'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster', 'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus', 'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick', 'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel', 'Frye',
'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield', 'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson', 'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates', 'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg', 'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd', 'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold', 'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo', 'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert', 'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio', 'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio', 'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon', 'Gordy', 'Goswin', 'Götz', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg', 'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier', 'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar', 'Gunter', 'Günter', 'Gunther', 'Günther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
'Hajo', 'Hamilton', 'Hamlet', 'Hampton', 'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow', 'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke', 'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge', 'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning', 'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules', 'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm', 'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh', 'Hugo', 'Humphrey', 'Hunter',
'Ignatius', 'Ignaz', 'Ignazio', 'Igor', 'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus', 'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah', 'Isidor', 'Istvan', 'Ivan', 'Ivo',
'Jackson', 'Jacky', 'Jacob', 'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob', 'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning', 'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno', 'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay', 'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered', 'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom', 'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim', 'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel', 'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan', 'Jonny', 'Jordan', 'Jordano', 'Jörg', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain', 'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius', 'Jürgen', 'Jurij', 'Justin', 'Justinian', 'Justus',
'Kain', 'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar', 'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten', 'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus', 'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin', 'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer', 'Kuno', 'Kurt', 'Kyros', 'Lajos',
'Lambert', 'Lamberto', 'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius', 'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander', 'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard', 'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi', 'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion', 'Lionel', 'LLoyd', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire', 'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas', 'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel',
'Maik', 'Malte', 'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello', 'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino', 'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu', 'Mathis', 'Matt', 'Matteo', 'Matthäus', 'Matthes', 'Matthew', 'Matthias', 'Matthieu', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio', 'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian', 'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel', 'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike', 'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav', 'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten',
'Nat', 'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron', 'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola', 'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas', 'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah', 'Noel', 'Norbert', 'Norberto', 'Norman',
'Odin', 'Odo', 'Odysseus', 'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf', 'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin', 'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen',
'Paco', 'Paddy', 'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio', 'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin', 'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per', 'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp', 'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet', 'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide', 'Placido', 'Placidus', 'Poldi',
'Quint', 'Quintin', 'Quintinus', 'Quintus', 'Quirin', 'Quirino',
'Raffaele', 'Raffaello', 'Raffaelo', 'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf', 'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael', 'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik', 'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja', 'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico', 'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock', 'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue', 'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman', 'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory', 'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph', 'Ruggero', 'Rupert', 'Ryan',
'Salomon', 'Salomone', 'Salvador', 'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander', 'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio', 'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim', 'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius', 'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius', 'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio', 'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon', 'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon', 'Söncke', 'Sören', 'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan', 'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester',
'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy', 'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry', 'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore', 'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy', 'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus', 'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade', 'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby', 'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin', 'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson',
'Udo', 'Ugo', 'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico', 'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus', 'Uwe',
'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio', 'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente', 'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez', 'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano', 'Vittorio', 'Volker',
'Wallace', 'Walt', 'Warner', 'Warren', 'Wido', 'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf', 'Wolfgang', 'Woodrow', 'Woody',
'Xaver',
);
protected static $firstNameFemale = array(
'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina', 'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee', 'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa', 'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis', 'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa', 'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina', 'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela', 'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja', 'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella', 'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje', 'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana', 'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette', 'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia',
'Barbara', 'Bärbel', 'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda', 'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina', 'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina', 'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane', 'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte', 'Britta',
'Caitlin', 'Cameron', 'Camilla', 'Camille', 'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela', 'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin', 'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie', 'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine', 'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia', 'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal', 'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe', 'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy', 'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia', 'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo', 'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie', 'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie', 'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosette', 'Cosima', 'Cynthia',
'Daisy', 'Dajana', 'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica', 'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne', 'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby', 'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise', 'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina', 'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika', 'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja',
'Ebony', 'Edda', 'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine', 'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane', 'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela', 'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya', 'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda', 'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette', 'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia', 'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita',
'Fabiane', 'Fabienne', 'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina', 'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee', 'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas', 'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja', 'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora', 'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane', 'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca', 'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya', 'Friederike',
'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby', 'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva', 'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine', 'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill', 'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela', 'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana', 'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria', 'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia', 'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn', 'Gypsy',
'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi', 'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene', 'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera', 'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly', 'Hope',
'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse', 'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga', 'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona', 'Ivonne',
'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan', 'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine', 'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine', 'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina', 'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie', 'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie', 'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle', 'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Jördis', 'Josee', 'Josefa', 'Josefina', 'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita', 'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia', 'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette', 'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta',
'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin', 'Katarina', 'Kate', 'Katharina', 'Katharine', 'Käthe', 'Katherina', 'Katherine', 'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka', 'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala', 'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira', 'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia', 'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori', 'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Kyra',
'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Lätizia', 'Laurel', 'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea', 'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie', 'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia', 'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese', 'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo', 'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette', 'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora', 'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise', 'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia', 'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
'Maddalena', 'Madelaine', 'Madeleine', 'Madeline', 'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda', 'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin', 'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon', 'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia', 'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta', 'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam', 'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke', 'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies', 'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita', 'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena', 'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe', 'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde', 'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May', 'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina', 'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes', 'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela', 'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi', 'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella', 'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona', 'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel', 'Myriam',
'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy', 'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie', 'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine', 'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike', 'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie', 'Nora', 'Norma', 'Nuala',
'Olga', 'Olivia', 'Ophelia', 'Orania', 'Orla', 'Ornella', 'Orsola', 'Ottilie',
'Paloma', 'Pam', 'Pamela', 'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia', 'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina', 'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa', 'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica', 'Prisca', 'Priscilla', 'Priscille', 'Priska',
'Rachel', 'Rachel', 'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna', 'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi', 'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita', 'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia', 'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline', 'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana', 'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta', 'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy', 'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha', 'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma', 'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena', 'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari', 'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin', 'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane', 'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja', 'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia', 'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan', 'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea', 'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia', 'Sylvie',
'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita', 'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka', 'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie', 'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana', 'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho', 'Tyra',
'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania', 'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis', 'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona', 'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire', 'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta', 'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane', 'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni',
'Wencke', 'Weneke', 'Wibke', 'Wilja', 'Willow', 'Wilma',
);
protected static $lastName = array(
'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann', 'Austermühle',
'Bachmann', 'Bähr', 'Bärer', 'Barkholz', 'Barth', 'Bauer', 'Baum', 'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger', 'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel', 'Bohlander', 'Bonbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Börner', 'Bohnbach', 'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte',
'Carsten', 'Caspar', 'Christoph', 'Cichorius', 'Conradi',
'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel', 'Ditschlerin', 'Dobes', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen van',
'Eberhardt', 'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer', 'Ernst', 'Etzler', 'Etzold',
'Faust', 'Fechner', 'Fiebig', 'Finke', 'Fischer', 'Flantz', 'Fliegner', 'Förster', 'Franke', 'Freudenberger', 'Fritsch', 'Fröhlich',
'Gehringer', 'Geisel', 'Geisler', 'Geißler', 'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz', 'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude', 'Gunpf', 'Gumprich', 'Gute', 'Gutknecht',
'Haase', 'Haering', 'Hänel', 'Häring', 'Hahn', 'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer', 'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz', 'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel', 'Hering', 'Hermann', 'Herrmann', 'Hermighausen', 'Hertrampf', 'Heser', 'Heß', 'Hesse', 'Hettner', 'Hethur', 'Heuser', 'Hiller', 'Heydrich', 'Höfig', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hölzenbecher', 'Hörle', 'Hövel', 'Hoffmann', 'Hornich', 'Hornig', 'Hübel', 'Huhn',
'Jacob', 'Jacobi Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jessel', 'Jockel', 'Johann', 'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken', 'Jüttner',
'Kabus', 'Kade', 'Käster', 'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel', 'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer', 'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Köhler', 'Köster', 'Kohl', 'Kostolzin', 'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel', 'Kroker', 'Kruschwitz', 'Kuhl', 'Kühnert', 'Kusch',
'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann', 'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Löchel', 'Löffler', 'Loos', 'Lorch', 'Losekann', 'Löwer', 'Lübs',
'Mälzer', 'Mangold', 'Mans', 'Margraf', 'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer', 'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann', 'Möchlichen', 'Mude', 'Mühle', 'Mülichen', 'Müller',
'Naser', 'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack', 'Nohlmans',
'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto',
'Paffrath', 'Pärtzelt', 'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl', 'Pölitz', 'Preiß', 'Pruschke', 'Putz',
'Rädel', 'Radisch', 'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl', 'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Röhrdanz', 'Röhricht', 'Roht', 'Römer', 'Rörricht', 'Rose', 'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger', 'Ruppert', 'Rust',
'Sager', 'Salz', 'Säuberlich', 'Sauer', 'Schaaf', 'Schacht', 'Schäfer', 'Scheel', 'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich', 'auch Schlauchin', 'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt', 'Schönland', 'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt', 'Schüler', 'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Segebahn', 'Seifert', 'Seidel', 'Seifert', 'Seip', 'Siering', 'Söding', 'Sölzer', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann', 'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz', 'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker', 'Süßebier',
'Täsche', 'Textor', 'Thanel', 'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Tröst', 'Trub', 'Trüb', 'Trubin', 'Trupp', 'Tschentscher',
'Ullmann', 'Ullrich',
'van der Dussen', 'Vogt', 'Vollbrecht',
'Wagenknecht', 'Wagner', 'Wähner', 'Walter', 'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weiß', 'Weitzel', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek', 'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf', 'Wulff',
'Zahn', 'Zänker', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel', 'Zorbach',
);
protected static $titleMale = array('Herr', 'Dr.', 'Mag.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
protected static $titleFemale = array('Frau', 'Dr.', 'Maga.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
protected static $suffix = array('B.Sc.', 'B.A.', 'B.Eng.', 'MBA.');
/**
* @example 'PhD'
*/
public static function suffix()
{
return static::randomElement(static::$suffix);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\de_AT;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'0650 #######',
'0660 #######',
'0664 #######',
'0676 #######',
'0677 #######',
'0678 #######',
'0699 #######',
'0680 #######',
'+43 #### ####',
'+43 #### ####-##',
);
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,15 @@
<?php
namespace Faker\Provider\de_DE;
class Company extends \Faker\Provider\Company
{
protected static $formats = array(
'{{lastName}} {{companySuffix}}',
'{{lastName}} {{lastName}} {{companySuffix}}',
'{{lastName}}',
'{{lastName}}',
);
protected static $companySuffix = array('e.G.', 'e.V.', 'GbR', 'GbR', 'OHG mbH', 'GmbH & Co. OHG', 'AG & Co. OHG', 'GmbH', 'GmbH', 'GmbH', 'GmbH', 'AG', 'AG', 'AG', 'AG', 'KG', 'KG', 'KG', 'GmbH & Co. KG', 'GmbH & Co. KG', 'AG & Co. KG', 'Stiftung & Co. KG', 'KGaA', 'GmbH & Co. KGaA', 'AG & Co. KGaA', 'Stiftung & Co. KGaA');
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\de_DE;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('web.de', 'gmail.com', 'hotmail.de', 'yahoo.de', 'googlemail.com', 'aol.de', 'gmx.de');
protected static $tld = array('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de');
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\de_DE;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'DE', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

View File

@@ -0,0 +1,124 @@
<?php
namespace Faker\Provider\de_DE;
class Person extends \Faker\Provider\Person
{
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}}-{{lastName}}',
'{{titleMale}} {{firstNameMale}} {{lastName}}',
'{{firstNameMale}} {{lastName}} {{suffix}}',
'{{titleMale}} {{firstNameMale}} {{lastName}} {{suffix}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}}-{{lastName}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
'{{firstNameFemale}} {{lastName}} {{suffix}}',
'{{titleFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
);
// From http://de.wiktionary.org/wiki/Verzeichnis:Deutsch/Liste_der_h%C3%A4ufigsten_m%C3%A4nnlichen_Vornamen_Deutschlands
protected static $firstNameMale = array(
'Abbas', 'Abdul', 'Abdullah', 'Abraham', 'Abram', 'Achim', 'Ada', 'Adalbert', 'Adam', 'Adelbert', 'Adem', 'Adolf', 'Adrian', 'Ahmad', 'Ahmed', 'Ahmet', 'Alan', 'Alban', 'Albert', 'Alberto', 'Albin', 'Albrecht', 'Aldo', 'Aleksandar', 'Aleksander', 'Aleksandr', 'Aleksej', 'Alessandro', 'Alex', 'Alexander', 'Alexandre', 'Alexandros', 'Alexei', 'Alexej', 'Alf', 'Alfons', 'Alfonso', 'Alfred', 'Alfredo', 'Ali', 'Alois', 'Aloys', 'Alwin', 'Amir', 'Anastasios', 'Anatol', 'Anatoli', 'Anatolij', 'Andre', 'Andreas', 'Andree', 'Andrei', 'Andrej', 'Andres', 'Andrew', 'Andrey', 'Andrzej', 'André', 'Andy', 'Angelo', 'Anselm', 'Ansgar', 'Ante', 'Anthony', 'Anto', 'Anton', 'Antonino', 'Antonio', 'Antonios', 'Antonius', 'Apostolos', 'Aribert', 'Arif', 'Armin', 'Arnd', 'Arndt', 'Arne', 'Arnfried', 'Arnim', 'Arno', 'Arnold', 'Arnulf', 'Arthur', 'Artur', 'Athanasios', 'Attila', 'August', 'Augustin', 'Axel', 'Aziz',
'Baldur', 'Balthasar', 'Baptist', 'Bartholomäus', 'Bastian', 'Bayram', 'Bekir', 'Bela', 'Ben', 'Benedikt', 'Benjamin', 'Benno', 'Berend', 'Bernard', 'Bernd', 'Bernd-Dieter', 'Berndt', 'Bernfried', 'Bernhard', 'Bernt', 'Bernward', 'Bert', 'Berthold', 'Bertold', 'Bertram', 'Birger', 'Björn', 'Bodo', 'Bogdan', 'Boris', 'Branko', 'Brian', 'Bruno', 'Burckhard', 'Burghard', 'Burkard', 'Burkhard', 'Burkhardt',
'Calogero', 'Carl', 'Carl-Heinz', 'Carlo', 'Carlos', 'Carmelo', 'Carsten', 'Celal', 'Cemal', 'Cemil', 'Cengiz', 'Cetin', 'Charles', 'Christian', 'Christof', 'Christoph', 'Christopher', 'Christos', 'Claas', 'Claudio', 'Claudius', 'Claus', 'Claus-Dieter', 'Claus-Peter', 'Clemens', 'Conrad', 'Constantin', 'Cord', 'Cornelius', 'Cosimo', 'Curt', 'Czeslaw',
'Dagobert', 'Damian', 'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Darius', 'Dariusz', 'Darko', 'David', 'Denis', 'Dennis', 'Denny', 'Detlef', 'Detlev', 'Diedrich', 'Dierk', 'Dieter', 'Diethard', 'Diethelm', 'Diether', 'Dietmar', 'Dietrich', 'Dimitri', 'Dimitrios', 'Dino', 'Dirk', 'Ditmar', 'Dittmar', 'Dogan', 'Domenico', 'Dominic', 'Dominik', 'Donald', 'Dragan', 'Drago', 'Dursun', 'Dusan',
'Eberhard', 'Eberhardt', 'Eckard', 'Eckart', 'Eckehard', 'Eckhard', 'Eckhardt', 'Eckhart', 'Edelbert', 'Edgar', 'Edmund', 'Eduard', 'Edward', 'Edwin', 'Egbert', 'Eggert', 'Egon', 'Ehrenfried', 'Ehrhard', 'Eitel', 'Ekkehard', 'Ekkehart', 'Ekrem', 'Elias', 'Elmar', 'Emanuel', 'Emil', 'Emin', 'Emmerich', 'Engelbert', 'Engin', 'Enno', 'Enrico', 'Enver', 'Ercan', 'Erdal', 'Erdogan', 'Erhard', 'Erhardt', 'Eric', 'Erich', 'Erik', 'Erkan', 'Ernest', 'Ernst', 'Ernst-August', 'Ernst-Dieter', 'Ernst-Otto', 'Erol', 'Erwin', 'Eugen', 'Evangelos', 'Ewald',
'Fabian', 'Falk', 'Falko', 'Faruk', 'Fatih', 'Fedor', 'Felix', 'Ferdi', 'Ferdinand', 'Ferenc', 'Fernando', 'Filippo', 'Florian', 'Folker', 'Folkert', 'Francesco', 'Francis', 'Francisco', 'Franco', 'Franjo', 'Frank', 'Frank-Michael', 'Frank-Peter', 'Franz', 'Franz Josef', 'Franz-Josef', 'Franz-Peter', 'Franz-Xaver', 'Fred', 'Freddy', 'Frederic', 'Frederik', 'Fredi', 'Fredo', 'Fredy', 'Fridolin', 'Friedbert', 'Friedemann', 'Frieder', 'Friedhelm', 'Friedhold', 'Friedo', 'Friedrich', 'Friedrich-Karl', 'Friedrich-Wilhelm', 'Frithjof', 'Fritz',
'Gabor', 'Gabriel', 'Gaetano', 'Gebhard', 'Geert', 'Georg', 'George', 'Georgios', 'Gerald', 'Gerard', 'Gerd', 'Gereon', 'Gerfried', 'Gerhard', 'Gerhardt', 'Gerhart', 'German', 'Gernot', 'Gero', 'Gerold', 'Gerolf', 'Gert', 'Gerwin', 'Gilbert', 'Gino', 'Giorgio', 'Giovanni', 'Gisbert', 'Giuseppe', 'Goran', 'Gordon', 'Gottfried', 'Gotthard', 'Gotthilf', 'Gotthold', 'Gottlieb', 'Gottlob', 'Gregor', 'Grzegorz', 'Guenter', 'Guenther', 'Guido', 'Guiseppe', 'Gunar', 'Gundolf', 'Gunnar', 'Gunter', 'Gunther', 'Guntram', 'Gustav', 'Götz', 'Günter', 'Günther',
'H.-Dieter', 'Hagen', 'Hajo', 'Hakan', 'Halil', 'Hannes', 'Hanni', 'Hanno', 'Hanns', 'Hans', 'Hans D.', 'Hans Dieter', 'Hans Georg', 'Hans Josef', 'Hans Jörg', 'Hans Jürgen', 'Hans Peter', 'Hans-Adolf', 'Hans-Albert', 'Hans-Bernd', 'Hans-Christian', 'Hans-Detlef', 'Hans-Dieter', 'Hans-Dietrich', 'Hans-Eberhard', 'Hans-Erich', 'Hans-Friedrich', 'Hans-Georg', 'Hans-Gerd', 'Hans-Gerhard', 'Hans-Günter', 'Hans-Günther', 'Hans-H.', 'Hans-Heinrich', 'Hans-Helmut', 'Hans-Henning', 'Hans-Herbert', 'Hans-Hermann', 'Hans-Hinrich', 'Hans-J.', 'Hans-Joachim', 'Hans-Jochen', 'Hans-Josef', 'Hans-Jörg', 'Hans-Jürgen', 'Hans-Karl', 'Hans-Ludwig', 'Hans-Martin', 'Hans-Michael', 'Hans-Otto', 'Hans-Peter', 'Hans-Rainer', 'Hans-Rudolf', 'Hans-Theo', 'Hans-Ulrich', 'Hans-Uwe', 'Hans-Walter', 'Hans-Werner', 'Hans-Wilhelm', 'Hans-Willi', 'Hans-Wolfgang', 'Hansgeorg', 'Hansjoachim', 'Hansjörg', 'Hansjürgen', 'Hanspeter', 'Harald', 'Hardy', 'Harm', 'Harold', 'Harri', 'Harro', 'Harry', 'Hartmut', 'Hartmuth', 'Hartwig', 'Hasan', 'Hassan', 'Hasso', 'Heiko', 'Heimo', 'Heiner', 'Heinfried', 'Heini', 'Heino', 'Heinrich', 'Heinz', 'Heinz Dieter', 'Heinz-Dieter', 'Heinz-Georg', 'Heinz-Gerd', 'Heinz-Günter', 'Heinz-Günther', 'Heinz-Joachim', 'Heinz-Josef', 'Heinz-Jürgen', 'Heinz-Otto', 'Heinz-Peter', 'Heinz-Walter', 'Heinz-Werner', 'Heinz-Wilhelm', 'Heinz-Willi', 'Helfried', 'Helge', 'Hellmut', 'Hellmuth', 'Helmar', 'Helmut', 'Helmuth', 'Hendrik', 'Henner', 'Henning', 'Henrik', 'Henry', 'Henryk', 'Herbert', 'Heribert', 'Hermann', 'Hermann Josef', 'Hermann-Josef', 'Herrmann', 'Herwig', 'Hilmar', 'Hinrich', 'Holger', 'Holm', 'Horst', 'Horst-Dieter', 'Horst-Günter', 'Horst-Peter', 'Hubert', 'Hubertus', 'Hugo', 'Hüseyin',
'Ian', 'Ibrahim', 'Ignatz', 'Ignaz', 'Igor', 'Ilhan', 'Ilias', 'Ilija', 'Ilja', 'Immo', 'Imre', 'Ingbert', 'Ingmar', 'Ingo', 'Ingolf', 'Ioannis', 'Isidor', 'Ismail', 'Ismet', 'Istvan', 'Ivan', 'Ivo', 'Iwan',
'Jacek', 'Jacob', 'Jakob', 'James', 'Jan', 'Jan-Peter', 'Janko', 'Jann', 'Janos', 'Janus', 'Janusz', 'Jaroslav', 'Jaroslaw', 'Jens', 'Jens-Peter', 'Jens-Uwe', 'Jerzy', 'Jiri', 'Joachim', 'Jobst', 'Jochem', 'Jochen', 'Joerg', 'Johan', 'Johann', 'Johannes', 'John', 'Jonas', 'Jonas', 'Jonathan', 'Jorge', 'Jose', 'Josef', 'Joseph', 'Josip', 'Jost', 'José', 'Jovan', 'Jozef', 'Juan', 'Juergen', 'Julian', 'Julius', 'Juri', 'Jurij', 'Justus', 'Jörg', 'Jörg-Peter', 'Jörgen', 'Jörn', 'Jürgen',
'Kai-Uwe', 'Kamil', 'Karl', 'Karl Heinz', 'Karl-August', 'Karl-Dieter', 'Karl-Ernst', 'Karl-Friedrich', 'Karl-Georg', 'Karl-Hans', 'Karl-Heinrich', 'Karl-Heinz', 'Karl-Hermann', 'Karl-Josef', 'Karl-Jürgen', 'Karl-Ludwig', 'Karl-Otto', 'Karl-Peter', 'Karl-Werner', 'Karl-Wilhelm', 'Karlfried', 'Karlheinz', 'Karsten', 'Kasimir', 'Kaspar', 'Kay-Uwe', 'Kazim', 'Kemal', 'Kenan', 'Kenneth', 'Kevin', 'Kilian', 'Klaas', 'Klaus', 'Klaus Dieter', 'Klaus Peter', 'Klaus-D.', 'Klaus-Dieter', 'Klaus-Günter', 'Klaus-Jürgen', 'Klaus-Michael', 'Klaus-Peter', 'Klaus-Ulrich', 'Klaus-Werner', 'Klemens', 'Knud', 'Knut', 'Konrad', 'Konstantin', 'Konstantinos', 'Korbinian', 'Kornelius', 'Kristian', 'Krzysztof', 'Kunibert', 'Kuno', 'Kurt',
'Ladislaus', 'Lambert', 'Lars', 'Laszlo', 'Laurenz', 'Leander', 'Leif', 'Leo', 'Leon', 'Leonard', 'Leonardo', 'Leonhard', 'Leonid', 'Leopold', 'Leszek', 'Linus', 'Lorenz', 'Lorenzo', 'Lothar', 'Louis', 'Luciano', 'Ludger', 'Ludwig', 'Luigi', 'Luis', 'Lukas', 'Lutz',
'Magnus', 'Mahmoud', 'Mahmut', 'Maik', 'Malte', 'Manfred', 'Manuel', 'Marc', 'Marcel', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marijan', 'Mario', 'Marius', 'Mariusz', 'Mark', 'Marko', 'Markus', 'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mato', 'Matteo', 'Matthias', 'Matthäus', 'Mattias', 'Maurice', 'Maurizio', 'Max', 'Maxim', 'Maximilian', 'Mehdi', 'Mehmet', 'Meik', 'Meinhard', 'Meinolf', 'Meinrad', 'Mesut', 'Metin', 'Micha', 'Michael', 'Michail', 'Michel', 'Miguel', 'Mijo', 'Mike', 'Mikhail', 'Milan', 'Milos', 'Miodrag', 'Mirco', 'Mirko', 'Miroslav', 'Miroslaw', 'Mohamed', 'Mohammad', 'Mohammed', 'Moritz', 'Muharrem', 'Murat', 'Mustafa', 'Muzaffer',
'Necati', 'Nick', 'Nico', 'Nicolai', 'Nicolas', 'Nicolaus', 'Niels', 'Niklas', 'Niko', 'Nikola', 'Nikolai', 'Nikolaj', 'Nikolaos', 'Nikolas', 'Nikolaus', 'Nils', 'Norbert', 'Norman', 'Nurettin', 'Nuri',
'Olaf', 'Ole', 'Oliver', 'Orhan', 'Ortwin', 'Oscar', 'Oskar', 'Osman', 'Oswald', 'Oswin', 'Otfried', 'Othmar', 'Otmar', 'Ottfried', 'Ottmar', 'Otto', 'Ottokar', 'Ottomar',
'Paolo', 'Pascal', 'Pasquale', 'Patric', 'Patrick', 'Patrik', 'Paul', 'Paul-Gerhard', 'Paul-Heinz', 'Paulo', 'Pavel', 'Pawel', 'Pedro', 'Peer', 'Pero', 'Petar', 'Peter', 'Peter-Michael', 'Petros', 'Philip', 'Philipp', 'Philippe', 'Phillip', 'Pierre', 'Pietro', 'Piotr', 'Pirmin', 'Pius',
'Rafael', 'Raik', 'Raimund', 'Rainer', 'Ralf', 'Ralf-Dieter', 'Ralf-Peter', 'Ralph', 'Ramazan', 'Ramon', 'Randolf', 'Raphael', 'Raymond', 'Raymund', 'Recep', 'Reginald', 'Reimar', 'Reimer', 'Reimund', 'Reinald', 'Reiner', 'Reinhard', 'Reinhardt', 'Reinhart', 'Reinhold', 'Remo', 'Renato', 'Rene', 'René', 'Reza', 'Ricardo', 'Richard', 'Rico', 'Rigo', 'Riza', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rochus', 'Roderich', 'Roger', 'Roland', 'Rolf', 'Rolf-Dieter', 'Rolf-Peter', 'Roman', 'Romuald', 'Ron', 'Ronald', 'Ronny', 'Rouven', 'Roy', 'Ruben', 'Rudi', 'Rudolf', 'Rudolph', 'Rupert', 'Ryszard', 'Rüdiger',
'Saban', 'Sabri', 'Sahin', 'Salih', 'Salvatore', 'Sami', 'Samir', 'Samuel', 'Sandor', 'Sandro', 'Sebastian', 'Sebastiano', 'Sedat', 'Selim', 'Senol', 'Sepp', 'Serge', 'Sergei', 'Sergej', 'Sergio', 'Severin', 'Siegbert', 'Siegfried', 'Sieghard', 'Siegmar', 'Siegmund', 'Siegward', 'Sigfried', 'Sigismund', 'Sigmar', 'Sigmund', 'Sigurd', 'Silvester', 'Silvio', 'Simon', 'Slavko', 'Slawomir', 'Slobodan', 'Stanislaus', 'Stanislav', 'Stanislaw', 'Stavros', 'Stefan', 'Stefano', 'Steffen', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stjepan', 'Sven', 'Swen', 'Sylvester', 'Sylvio', 'Sönke', 'Sören', 'Sükrü', 'Süleyman',
'Tadeusz', 'Tassilo', 'Thaddäus', 'Theo', 'Theobald', 'Theodor', 'Theodoros', 'Thies', 'Thilo', 'Thomas', 'Thoralf', 'Thorben', 'Thorsten', 'Tibor', 'Till', 'Tillmann', 'Tilman', 'Tilmann', 'Tilo', 'Tim', 'Timm', 'Timo', 'Tino', 'Tobias', 'Tom', 'Tomas', 'Tomasz', 'Tomislav', 'Toni', 'Tony', 'Toralf', 'Torben', 'Torsten', 'Traugott',
'Udo', 'Ulf', 'Uli', 'Ullrich', 'Ulrich', 'Urban', 'Urs', 'Utz', 'Uwe',
'Vadim', 'Valentin', 'Valerij', 'Vassilios', 'Veit', 'Veli', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinko', 'Vinzenz', 'Vitali', 'Vito', 'Vittorio', 'Vitus', 'Vladimir', 'Vlado', 'Volker', 'Volkhard', 'Volkmar',
'Waldemar', 'Walfried', 'Walter', 'Walther', 'Wenzel', 'Werner', 'Wieland', 'Wieslaw', 'Wigbert', 'Wilfried', 'Wilhelm', 'Willfried', 'Willi', 'William', 'Willibald', 'Willibert', 'Willy', 'Winfried', 'Witold', 'Wladimir', 'Wojciech', 'Woldemar', 'Wolf', 'Wolf-Dieter', 'Wolf-Dietrich', 'Wolf-Rüdiger', 'Wolfgang', 'Wolfhard', 'Wolfram', 'Wulf',
'Xaver',
'Yilmaz', 'Yusuf',
'Zbigniew', 'Zdravko', 'Zeki', 'Zeljko', 'Zenon', 'Zlatko', 'Zoltan', 'Zoran',
);
// From http://de.wiktionary.org/wiki/Verzeichnis:Deutsch/Liste_der_h%C3%A4ufigsten_weiblichen_Vornamen_Deutschlands
protected static $firstNameFemale = array(
'Adele', 'Adelgunde', 'Adelheid', 'Adelinde', 'Adeline', 'Adina', 'Adolfine', 'Adriana', 'Adriane', 'Aenne', 'Änne', 'Agata', 'Agatha', 'Agathe', 'Agnes', 'Agnieszka', 'Albertine', 'Albina', 'Aleksandra', 'Alena', 'Alexa', 'Alexandra', 'Alice', 'Alicia', 'Alicja', 'Alida', 'Alina', 'Aline', 'Alla', 'Alma', 'Almut', 'Almuth', 'Aloisia', 'Alwina', 'Alwine', 'Amalia', 'Amalie', 'Amanda', 'Amelie', 'Ana', 'Anastasia', 'Andrea', 'Aneta', 'Anett', 'Anette', 'Angela', 'Angelica', 'Angelika', 'Angelina', 'Angelique', 'Anica', 'Anika', 'Anita', 'Anja', 'Anka', 'Anke', 'Ann', 'Ann-Kathrin', 'Anna', 'Anna-Lena', 'Anna-Luise', 'Anna-Maria', 'Anna-Marie', 'Annaliese', 'Annamaria', 'Anne', 'Anne-Kathrin', 'Anne-Katrin', 'Anne-Marie', 'Anne-Rose', 'Annedore', 'Annegret', 'Annegrete', 'Annekatrin', 'Anneke', 'Annelene', 'Anneli', 'Annelie', 'Annelies', 'Anneliese', 'Annelise', 'Annelore', 'Annemarie', 'Annemie', 'Annerose', 'Annett', 'Annette', 'Anni', 'Annie', 'Annika', 'Annita', 'Anny', 'Antje', 'Antoinette', 'Antonia', 'Antonie', 'Antonietta', 'Antonina', 'Apollonia', 'Ariane', 'Arzu', 'Asta', 'Astrid', 'Augusta', 'Auguste', 'Aurelia', 'Aynur', 'Ayse', 'Aysel', 'Ayten',
'Babett', 'Babette', 'Barbara', 'Beata', 'Beate', 'Beatrice', 'Beatrix', 'Belinda', 'Benita', 'Berit', 'Bernadette', 'Bernhardine', 'Berta', 'Bertha', 'Betina', 'Betti', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Birgid', 'Birgit', 'Birgitt', 'Birgitta', 'Birte', 'Birthe', 'Blanka', 'Bozena', 'Branka', 'Brigitta', 'Brigitte', 'Brit', 'Brita', 'Britt', 'Britta', 'Brunhild', 'Brunhilde', 'Bruni', 'Bärbel',
'Camilla', 'Canan', 'Caren', 'Carin', 'Carina', 'Carla', 'Carmela', 'Carmen', 'Carmine', 'Carola', 'Carolin', 'Carolina', 'Caroline', 'Caterina', 'Catharina', 'Catherine', 'Cathleen', 'Cathrin', 'Catrin', 'Cecilia', 'Centa', 'Chantal', 'Charlotte', 'Christa', 'Christa-Maria', 'Christel', 'Christiana', 'Christiane', 'Christin', 'Christina', 'Christine', 'Christl', 'Cilli', 'Cilly', 'Cindy', 'Claire', 'Clara', 'Clarissa', 'Claudia', 'Cläre', 'Concetta', 'Conny', 'Constance', 'Constanze', 'Cora', 'Cordula', 'Corina', 'Corinna', 'Corinne', 'Cornelia', 'Cosima', 'Cristina', 'Cynthia', 'Cäcilia', 'Cäcilie',
'Dagmar', 'Dajana', 'Damaris', 'Dana', 'Danica', 'Daniela', 'Danielle', 'Danuta', 'Daria', 'Deborah', 'Delia', 'Denise', 'Desiree', 'Diana', 'Diane', 'Dietlind', 'Dietlinde', 'Dina', 'Dolores', 'Donata', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit', 'Dorle', 'Dorota', 'Dorothe', 'Dorothea', 'Dorothee', 'Dragica', 'Dunja', 'Dörte', 'Dörthe',
'Edda', 'Edelgard', 'Edeltraud', 'Edeltraut', 'Edeltrud', 'Edit', 'Edith', 'Editha', 'Ehrentraud', 'Eileen', 'Ekaterina', 'Elena', 'Eleni', 'Elenore', 'Eleonora', 'Eleonore', 'Elfi', 'Elfie', 'Elfriede', 'Elif', 'Elisa', 'Elisabet', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen', 'Elli', 'Ellinor', 'Elly', 'Elma', 'Elsa', 'Elsbeth', 'Else', 'Elvira', 'Elwira', 'Elzbieta', 'Emilia', 'Emilie', 'Emine', 'Emma', 'Emmi', 'Emmy', 'Erdmute', 'Erica', 'Erika', 'Erna', 'Ernestine', 'Ester', 'Esther', 'Etta', 'Eugenia', 'Eugenie', 'Eva', 'Eva-Maria', 'Eva-Marie', 'Evamaria', 'Evangelia', 'Evelin', 'Eveline', 'Evelyn', 'Evelyne', 'Evi', 'Ewa',
'Fabienne', 'Fadime', 'Fanny', 'Fatima', 'Fatma', 'Felicia', 'Felicitas', 'Felizitas', 'Filiz', 'Flora', 'Florence', 'Florentine', 'Franca', 'Francesca', 'Francoise', 'Franka', 'Franziska', 'Frauke', 'Frederike', 'Freia', 'Freya', 'Frida', 'Frieda', 'Friedericke', 'Friederike', 'Friedhilde', 'Friedl', 'Friedlinde',
'Gabi', 'Gabriela', 'Gabriele', 'Gabriella', 'Gaby', 'Galina', 'Genoveva', 'Georgia', 'Georgine', 'Geraldine', 'Gerda', 'Gerdi', 'Gerhild', 'Gerlind', 'Gerlinde', 'Gerta', 'Gerti', 'Gertraud', 'Gertraude', 'Gertraut', 'Gertrud', 'Gertrude', 'Gesa', 'Gesche', 'Gesine', 'Geza', 'Giesela', 'Gilda', 'Gina', 'Giovanna', 'Gisa', 'Gisela', 'Gislinde', 'Gitta', 'Gitte', 'Giuseppina', 'Gloria', 'Gordana', 'Grazyna', 'Greta', 'Gretchen', 'Grete', 'Gretel', 'Gretl', 'Grit', 'Gudrun', 'Gudula', 'Gunda', 'Gundel', 'Gundi', 'Gundula', 'Gunhild', 'Gusti', 'Gönül', 'Gülay', 'Gülsen', 'Gülten',
'Halina', 'Hanife', 'Hanna', 'Hannah', 'Hannchen', 'Hanne', 'Hanne-Lore', 'Hannelore', 'Hanny', 'Harriet', 'Hatice', 'Hedda', 'Hedi', 'Hedwig', 'Hedy', 'Heide', 'Heide-Marie', 'Heidelinde', 'Heidelore', 'Heidemarie', 'Heiderose', 'Heidi', 'Heidrun', 'Heike', 'Helen', 'Helena', 'Helene', 'Helga', 'Hella', 'Helma', 'Helmtrud', 'Henni', 'Henny', 'Henri', 'Henriette', 'Henrike', 'Herlinde', 'Herma', 'Hermine', 'Herta', 'Hertha', 'Hilda', 'Hildburg', 'Hilde', 'Hildegard', 'Hildegart', 'Hildegund', 'Hildegunde', 'Hilma', 'Hiltraud', 'Hiltrud', 'Hubertine', 'Hulda', 'Hülya',
'Ida', 'Ildiko', 'Ilka', 'Ilona', 'Ilonka', 'Ilse', 'Imelda', 'Imke', 'Ina', 'Ines', 'Inga', 'Inge', 'Ingeborg', 'Ingeburg', 'Ingelore', 'Ingetraud', 'Ingetraut', 'Ingrid', 'Ingried', 'Inka', 'Inken', 'Inna', 'Insa', 'Ira', 'Irena', 'Irene', 'Irina', 'Iris', 'Irma', 'Irmela', 'Irmengard', 'Irmgard', 'Irmhild', 'Irmi', 'Irmingard', 'Irmtraud', 'Irmtraut', 'Irmtrud', 'Isa', 'Isabel', 'Isabell', 'Isabella', 'Isabelle', 'Isolde', 'Ivana', 'Ivanka', 'Ivonne', 'Iwona',
'Jacqueline', 'Jadwiga', 'Jana', 'Jane', 'Janet', 'Janett', 'Janette', 'Janin', 'Janina', 'Janine', 'Janna', 'Jaqueline', 'Jasmin', 'Jasmina', 'Jeanette', 'Jeannette', 'Jeannine', 'Jelena', 'Jennifer', 'Jenny', 'Jessica', 'Jessika', 'Jo', 'Joana', 'Joanna', 'Johanna', 'Johanne', 'Jolanda', 'Jolanta', 'Jolanthe', 'Josefa', 'Josefine', 'Josephine', 'Judith', 'Julia', 'Juliana', 'Juliane', 'Julie', 'Justina', 'Justine', 'Jutta',
'Karen', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kata', 'Katalin', 'Katarina', 'Katarzyna', 'Katerina', 'Katharina', 'Katharine', 'Katherina', 'Kathi', 'Kathleen', 'Kathrin', 'Kathy', 'Kati', 'Katja', 'Katrin', 'Katy', 'Kerstin', 'Kira', 'Kirsten', 'Kirstin', 'Klara', 'Klaudia', 'Klothilde', 'Kläre', 'Konstanze', 'Kordula', 'Korinna', 'Kornelia', 'Kreszentia', 'Kreszenz', 'Kriemhild', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine', 'Krystyna', 'Kunigunda', 'Kunigunde', 'Käte', 'Käthe', 'Käthi',
'Laila', 'Lara', 'Larissa', 'Laura', 'Lea', 'Leila', 'Lena', 'Lene', 'Leni', 'Leokadia', 'Leonie', 'Leonore', 'Leopoldine', 'Leyla', 'Lia', 'Liane', 'Lidia', 'Lidija', 'Lidwina', 'Liesa', 'Liesbeth', 'Lieschen', 'Liesel', 'Lieselotte', 'Lili', 'Lilian', 'Liliana', 'Liliane', 'Lilija', 'Lilli', 'Lilly', 'Lilo', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Liselotte', 'Lisette', 'Lissi', 'Lissy', 'Ljiljana', 'Ljubica', 'Ljudmila', 'Loni', 'Lore', 'Loretta', 'Lotte', 'Lotti', 'Louise', 'Lucia', 'Lucie', 'Ludmila', 'Ludmilla', 'Ludwina', 'Luisa', 'Luise', 'Luitgard', 'Luka', 'Luzia', 'Luzie', 'Lydia',
'Madeleine', 'Madlen', 'Magarete', 'Magda', 'Magdalena', 'Magdalene', 'Magret', 'Magrit', 'Maike', 'Maja', 'Malgorzata', 'Mandy', 'Manja', 'Manuela', 'Mara', 'Marcella', 'Mareen', 'Mareike', 'Mareile', 'Maren', 'Marga', 'Margaret', 'Margareta', 'Margarete', 'Margaretha', 'Margarethe', 'Margarita', 'Margit', 'Margita', 'Margitta', 'Margot', 'Margret', 'Margrit', 'Maria', 'Maria-Luise', 'Maria-Theresia', 'Mariana', 'Marianna', 'Marianne', 'Marica', 'Marie', 'Marie-Louise', 'Marie-Luise', 'Marie-Theres', 'Marie-Therese', 'Mariechen', 'Mariele', 'Marieluise', 'Marietta', 'Marija', 'Marika', 'Marina', 'Mariola', 'Marion', 'Marisa', 'Marit', 'Marita', 'Maritta', 'Marjan', 'Marleen', 'Marlen', 'Marlene', 'Marlies', 'Marliese', 'Marlis', 'Marta', 'Martha', 'Martina', 'Martine', 'Mary', 'Marzena', 'Mathilde', 'Maya', 'Mechthild', 'Mechthilde', 'Mechtild', 'Meike', 'Melanie', 'Melissa', 'Melita', 'Melitta', 'Meral', 'Mercedes', 'Meryem', 'Meta', 'Mia', 'Michaela', 'Michaele', 'Michelle', 'Milena', 'Milica', 'Milka', 'Mina', 'Minna', 'Mira', 'Mirella', 'Miriam', 'Mirja', 'Mirjam', 'Mirjana', 'Miroslawa', 'Mona', 'Monica', 'Monika', 'Monique', 'Monja', 'Myriam',
'Nada', 'Nadeschda', 'Nadeshda', 'Nadia', 'Nadin', 'Nadine', 'Nadja', 'Nancy', 'Natali', 'Natalia', 'Natalie', 'Natalija', 'Natalja', 'Natascha', 'Nathalie', 'Nelli', 'Nelly', 'Nermin', 'Nevenka', 'Nicole', 'Nina', 'Nora', 'Norma', 'Notburga', 'Nuran', 'Nuray', 'Nurten',
'Oda', 'Olav', 'Olena', 'Olga', 'Olivia', 'Ortrud', 'Ortrun', 'Ottilie', 'Oxana',
'Pamela', 'Paola', 'Pascale', 'Patricia', 'Patrizia', 'Paula', 'Paulina', 'Pauline', 'Peggy', 'Petra', 'Philomena', 'Pia', 'Polina', 'Priska',
'Rabea', 'Radmila', 'Rahel', 'Raisa', 'Raissa', 'Ramona', 'Raphaela', 'Rebecca', 'Rebekka', 'Regina', 'Regine', 'Reingard', 'Reinhild', 'Reinhilde', 'Rena', 'Renata', 'Renate', 'Reni', 'Resi', 'Ria', 'Ricarda', 'Rita', 'Romana', 'Romy', 'Rosa', 'Rosa-Maria', 'Rosalia', 'Rosalie', 'Rosalinde', 'Rose', 'Rose-Marie', 'Rosel', 'Roselinde', 'Rosemarie', 'Rosi', 'Rosina', 'Rosita', 'Rosl', 'Rosmarie', 'Roswita', 'Roswitha', 'Rotraud', 'Rotraut', 'Ruth', 'Ruthild',
'Sabina', 'Sabine', 'Sabrina', 'Samira', 'Sandra', 'Sandy', 'Sara', 'Sarah', 'Sarina', 'Saskia', 'Selma', 'Semra', 'Senta', 'Serpil', 'Sevim', 'Sibel', 'Sibilla', 'Sibille', 'Sibylla', 'Sibylle', 'Sieglinde', 'Siegrid', 'Siegried', 'Siegrun', 'Siglinde', 'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silva', 'Silvana', 'Silvia', 'Simona', 'Simone', 'Sina', 'Sinaida', 'Slavica', 'Sofia', 'Sofie', 'Solveig', 'Songül', 'Sonia', 'Sonja', 'Sophia', 'Sophie', 'Stefani', 'Stefania', 'Stefanie', 'Steffi', 'Stella', 'Stephanie', 'Stilla', 'Susan', 'Susana', 'Susann', 'Susanna', 'Susanne', 'Suse', 'Susi', 'Suzanne', 'Svea', 'Svenja', 'Svetlana', 'Swantje', 'Swetlana', 'Sybilla', 'Sybille', 'Sylke', 'Sylvana', 'Sylvia', 'Sylvie', 'Sylwia',
'Tabea', 'Tamara', 'Tania', 'Tanja', 'Tatiana', 'Tatjana', 'Telse', 'Teresa', 'Thea', 'Theda', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese', 'Theresia', 'Tilly', 'Tina', 'Traude', 'Traudel', 'Traudl', 'Traute', 'Trude', 'Trudel', 'Trudi', 'Tülay', 'Türkan',
'Ulla', 'Ulrike', 'Undine', 'Ursel', 'Ursula', 'Urszula', 'Urte', 'Uschi', 'Uta', 'Ute',
'Valentina', 'Valentine', 'Valeri', 'Valeria', 'Valerie', 'Valeska', 'Vanessa', 'Vera', 'Verena', 'Veronica', 'Veronika', 'Veronique', 'Vesna', 'Victoria', 'Viktoria', 'Viola', 'Violetta', 'Virginia', 'Viviane',
'Walburga', 'Waldtraut', 'Walentina', 'Walli', 'Wally', 'Waltraud', 'Waltraut', 'Waltrud', 'Wanda', 'Wencke', 'Wendelin', 'Wenke', 'Wera', 'Wibke', 'Wiebke', 'Wilfriede', 'Wilhelmine', 'Wilma', 'Wiltrud',
'Xenia',
'Yasemin', 'Yasmin', 'Yvette', 'Yvonne',
'Zdenka', 'Zehra', 'Zenta', 'Zeynep', 'Zita', 'Zofia',
);
protected static $lastName = array(
'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann', 'Austermühle',
'Bachmann', 'Bähr', 'Bärer', 'Barkholz', 'Barth', 'Bauer', 'Baum', 'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger', 'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel', 'Bohlander', 'Bonbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Börner', 'Bohnbach', 'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte',
'Carsten', 'Caspar', 'Christoph', 'Cichorius', 'Conradi',
'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel', 'Ditschlerin', 'Dobes', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen van',
'Eberhardt', 'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer', 'Ernst', 'Etzler', 'Etzold',
'Faust', 'Fechner', 'Fiebig', 'Finke', 'Fischer', 'Flantz', 'Fliegner', 'Förster', 'Franke', 'Freudenberger', 'Fritsch', 'Fröhlich',
'Gehringer', 'Geisel', 'Geisler', 'Geißler', 'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz', 'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude', 'Gunpf', 'Gumprich', 'Gute', 'Gutknecht',
'Haase', 'Haering', 'Hänel', 'Häring', 'Hahn', 'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer', 'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz', 'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel', 'Hering', 'Hermann', 'Herrmann', 'Hermighausen', 'Hertrampf', 'Heser', 'Heß', 'Hesse', 'Hettner', 'Hethur', 'Heuser', 'Hiller', 'Heydrich', 'Höfig', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hölzenbecher', 'Hörle', 'Hövel', 'Hoffmann', 'Hornich', 'Hornig', 'Hübel', 'Huhn',
'Jacob', 'Jacobi Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jessel', 'Jockel', 'Johann', 'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken', 'Jüttner',
'Kabus', 'Kade', 'Käster', 'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel', 'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer', 'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Köhler', 'Köster', 'Kohl', 'Kostolzin', 'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel', 'Kroker', 'Kruschwitz', 'Kuhl', 'Kühnert', 'Kusch',
'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann', 'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Löchel', 'Löffler', 'Loos', 'Lorch', 'Losekann', 'Löwer', 'Lübs',
'Mälzer', 'Mangold', 'Mans', 'Margraf', 'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer', 'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann', 'Möchlichen', 'Mude', 'Mühle', 'Mülichen', 'Müller',
'Naser', 'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack', 'Nohlmans',
'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto',
'Paffrath', 'Pärtzelt', 'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl', 'Pölitz', 'Preiß', 'Pruschke', 'Putz',
'Rädel', 'Radisch', 'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl', 'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Röhrdanz', 'Röhricht', 'Roht', 'Römer', 'Rörricht', 'Rose', 'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger', 'Ruppert', 'Rust',
'Sager', 'Salz', 'Säuberlich', 'Sauer', 'Schaaf', 'Schacht', 'Schäfer', 'Scheel', 'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich', 'auch Schlauchin', 'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt', 'Schönland', 'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt', 'Schüler', 'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Segebahn', 'Seifert', 'Seidel', 'Seifert', 'Seip', 'Siering', 'Söding', 'Sölzer', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann', 'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz', 'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker', 'Süßebier',
'Täsche', 'Textor', 'Thanel', 'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Tröst', 'Trub', 'Trüb', 'Trubin', 'Trupp', 'Tschentscher',
'Ullmann', 'Ullrich',
'van der Dussen', 'Vogt', 'Vollbrecht',
'Wagenknecht', 'Wagner', 'Wähner', 'Walter', 'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weiß', 'Weitzel', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek', 'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf', 'Wulff',
'Zahn', 'Zänker', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel', 'Zorbach',
);
protected static $titleMale = array('Herr', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
protected static $titleFemale = array('Frau', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.');
protected static $suffix = array('B.Sc.', 'B.A.', 'B.Eng.', 'MBA.');
/**
* @example 'PhD'
*/
public static function suffix()
{
return static::randomElement(static::$suffix);
}
}

View File

@@ -0,0 +1,20 @@
<?php
namespace Faker\Provider\de_DE;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'+49(0)##########',
'+49(0)#### ######',
'+49 (0) #### ######',
'+49(0) #########',
'+49(0)#### #####',
'0##########',
'0#########',
'0#### ######',
'0#### #####',
'(0####) ######',
'(0####) #####',
);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\el_GR;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'GR', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

View File

@@ -0,0 +1,178 @@
<?php
namespace Faker\Provider\el_GR;
class Person extends \Faker\Provider\Person
{
protected static $lastNameFormat = array(
'{{lastNameMale}}',
'{{lastNameFemale}}',
);
protected static $maleNameFormats = array(
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{titleMale}} {{firstNameMale}} {{lastNameMale}}',
);
protected static $femaleNameFormats = array(
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{titleFemale}} {{firstNameFemale}} {{lastNameFemale}}',
);
protected static $firstNameMale = array(
'Αβραάμ', 'Αγαθάγγελος', 'Αγαθοκλής', 'Αγαθόνικος', 'Αγαμέμνων', 'Αγαπητός', 'Αγάπιος', 'Άγγελος', 'Αγησίλαος', 'Αδάμ', 'Αδαμάντιος', 'Άδωνις', 'Αθανάσιος', 'Αθηναγόρας', 'Αθηνόδωρος', 'Αιμίλιος', 'Ακριβός', 'Ακρίτας', 'Αλέξανδρος', 'Αλέξιος', 'Αλκιβιάδης', 'Αμβρόσιος', 'Αναγνώστης', 'Ανανίας', 'Αναξαγόρας', 'Ανάργυρος', 'Αναστάσιος', 'Ανδροκλής', 'Ανδρόνικος', 'Άνθιμος', 'Ανθούλης', 'Αντίγονος', 'Αντίπατρος', 'Αντύπας', 'Αντώνιος', 'Απόλλων', 'Απόστολος', 'Αργύριος', 'Άρης', 'Αρίσταρχος', 'Αριστόβουλος', 'Αριστομένης', 'Άριστος', 'Αριστοτέλης', 'Αριστοφάνης', 'Αρτέμιος', 'Αρχέλαος', 'Αρχιμήδης', 'Ασημής', 'Ασκληπιός', 'Αστέριος', 'Αυγέρης', 'Αύγουστος', 'Αυξέντιος', 'Αφέντης', 'Αχιλλέας',
'Βάιος', 'Βαλάντης', 'Βαλεντίνος', 'Βαλέριος', 'Βαρδής', 'Βαρθολομαίος', 'Βαρσάμος', 'Βασίλειος', 'Βασίλης', 'Βελισσάριος', 'Βενέτιος', 'Βενιαμίν', 'Βενιζέλος', 'Βησσαρίων', 'Βικέντιος', 'Βλαδίμηρος', 'Βλάσιος', 'Βρασίδας', 'Βύρων',
'Γαβριήλ', 'Γαλάτιος', 'Γαληνός', 'Γαρύφαλλος', 'Γεράσιμος', 'Γεώργιος', 'Γκίκας', 'Γρηγόριος',
'Δαμασκηνός', 'Δαμιανός', 'Δανιήλ', 'Δημήτριος', 'Δημοκράτης', 'Δημόκριτος', 'Δήμος', 'Δημοσθένης', 'Δίκαιος', 'Διογένης', 'Διομήδης', 'Διονύσιος', 'Δομήνικος', 'Δράκων', 'Δρόσος', 'Δωρόθεος',
'Ειρηναίος', 'Έκτορας', 'Ελευθέριος', 'Ελισσαίος', 'Εμμανουήλ', 'Έξαρχος', 'Επαμεινώνδας', 'Ερμής', 'Ερμόλαος', 'Ερρίκος', 'Ερωτόκριτος', 'Ευάγγελος', 'Ευγένιος', 'Ευδόξιος', 'Ευθύμιος', 'Ευκλείδης', 'Ευμένιος', 'Ευριπίδης', 'Ευσέβιος', 'Ευστάθιος', 'Ευστράτιος', 'Ευτύχιος', 'Εφραίμ',
'Ζαφείριος', 'Ζαχαρίας', 'Ζηνόβιος', 'Ζήνων',
'Ηλίας', 'Ηρακλής', 'Ηρόδοτος', 'Ησαΐας',
'Θαλής', 'Θεμιστοκλής', 'Θεοδόσιος', 'Θεόδουλος', 'Θεόδωρος', 'Θεόκλητος', 'Θεολόγος', 'Θεόπιστος', 'Θεοτόκης', 'Θεοφάνης', 'Θεόφιλος', 'Θεόφραστος', 'Θεοφύλακτος', 'Θεοχάρης', 'Θησεύς', 'Θουκυδίδης', 'Θρασύβουλος', 'Θωμάς',
'Ιάκωβος', 'Ιάσων', 'Ιγνάτιος', 'Ιερεμίας', 'Ιερόθεος', 'Ιερώνυμος', 'Ίκαρος', 'Ιορδάνης', 'Ιουλιανός', 'Ιούλιος', 'Ιπποκράτης', 'Ιππόλυτος', 'Ισαάκ', 'Ισίδωρος', 'Ιωακείμ', 'Ιωάννης', 'Ίων', 'Ιωνάς', 'Ιωσήφ',
'Καλλίνικος', 'Κάρολος', 'Κηρύκος', 'Κίμων', 'Κλεάνθης', 'Κλέαρχος', 'Κλεόβουλος', 'Κλεομένης', 'Κλεόπας', 'Κλήμης', 'Κομνηνός', 'Κορνήλιος', 'Κοσμάς', 'Κρυστάλλης', 'Κυπριανός', 'Κυριαζής', 'Κυριάκος', 'Κύρος', 'Κωνσταντίνος',
'Λαέρτης', 'Λάζαρος', 'Λάμπρος', 'Λαοκράτης', 'Λάσκαρης', 'Λαυρέντιος', 'Λέανδρος', 'Λεμονής', 'Λεονάρδος', 'Λέων', 'Λεωνίδας', 'Λογοθέτης', 'Λουδοβίκος', 'Λουκάς', 'Λουκιανός', 'Λυκούργος', 'Λύσανδρος',
'Μαγδαληνός', 'Μακάριος', 'Μαρίνος', 'Μάριος', 'Μάρκος', 'Μαρτίνος', 'Ματθαίος', 'Μαυρίκιος', 'Μαυροειδής', 'Μαύρος', 'Μεγακλής', 'Μεθόδιος', 'Μελέτιος', 'Μένανδρος', 'Μενέλαος', 'Μερκούριος', 'Μηνάς', 'Μιλτιάδης', 'Μίνωας', 'Μιχαήλ',
'Ναθαναήλ', 'Ναπολέων', 'Νέαρχος', 'Νεκτάριος', 'Νεοκλής', 'Νεόφυτος', 'Νίκανδρος', 'Νικήτας', 'Νικηφόρος', 'Νικόδημος', 'Νικόλαος', 'Νίκων',
'Ξανθός', 'Ξενοφών',
'Οδυσσέας', 'Όθων', 'Όμηρος', 'Ορέστης', 'Ορφέας',
'Παναγιώτης', 'Πανορμίτης', 'Πανταζής', 'Παντελεήμων', 'Παρασκευάς', 'Παράσχος', 'Πάρις', 'Πασχάλης', 'Πάτροκλος', 'Παύλος', 'Παυσανίας', 'Πελοπίδας', 'Περικλής', 'Πέτρος', 'Πίνδαρος', 'Πλάτων', 'Πλούταρχος', 'Πολύβιος', 'Πολύδωρος', 'Πολυζώης', 'Πολύκαρπος', 'Πολυκράτης', 'Πολυχρόνιος', 'Πραξιτέλης', 'Πρόδρομος', 'Προκόπιος', 'Προμηθέας', 'Πυθαγόρας', 'Πύρρος',
'Ράλλης', 'Ραφαήλ', 'Ρήγας', 'Ρίζος', 'Ροδόφλος', 'Ρωμανός',
'Σάββας', 'Σαμουήλ', 'Σαράντης', 'Σεβαστιανός', 'Σεραφείμ', 'Σέργιος', 'Σολομών', 'Σόλων', 'Σοφοκλής', 'Σπυρίδων', 'Σταμάτιος', 'Σταύρος', 'Στέργιος', 'Στέφανος', 'Στυλιανός', 'Συμεών', 'Σώζων', 'Σωκράτης', 'Σωτήριος',
'Ταξίαρχος', 'Τηλέμαχος', 'Τιμόθεος', 'Τιμολέων', 'Τίμων', 'Τίτος', 'Τριαντάφυλλος', 'Τρύφων', 'Τσαμπίκος',
'Υάκινθος',
'Φαίδων', 'Φανούριος', 'Φιλήμων', 'Φίλιππος', 'Φοίβος', 'Φραγκίσκος', 'Φρειδερίκος', 'Φρίξος', 'Φωκάς', 'Φωκίων', 'Φωτεινός', 'Φώτιος',
'Χαράλαμπος', 'Χαρίλαος', 'Χαρίτος', 'Χρήστος', 'Χριστόδουλος', 'Χριστόφορος', 'Χρύσανθος', 'Χρυσοβαλάντιος', 'Χρυσόστομος',
);
protected static $firstNameFemale = array(
'Αποστολία', 'Αυγή', 'Αγάθη', 'Αγάπη', 'Αγγελική', 'Αγλαΐα', 'Αγνή', 'Αγόρω', 'Αδαμαντία', 'Αηδόνα', 'Αθανασία', 'Αθηνά', 'Αθηνοδώρα', 'Αικατερίνη', 'Αιμιλία', 'Ακριβή', 'Αλεξάνδρα', 'Αλεξία', 'Αλίκη', 'Άλκηστις', 'Αλκινόη', 'Αμαλία', 'Αμβροσία', 'Αμφιθέα', 'Αμφιτρίτη', 'Ανάργυρη', 'Αναστασία', 'Ανατολή', 'Ανδριανή', 'Ανδρομάχη', 'Ανδρομέδα', 'Ανδρονίκη', 'Ανθή', 'Άννα', 'Αντιγόνη', 'Αντωνία', 'Απολλωνία', 'Αποστολία', 'Αργυρώ', 'Αρετή', 'Αριάδνη', 'Αριστέα', 'Άρτεμις', 'Αρτεμισία', 'Αρχοντία', 'Ασημίνα', 'Ασπασία', 'Αστέρω', 'Αταλάντη', 'Αυγουστίνα', 'Αφέντρα', 'Αφροδίτη', 'Αχιλλεία',
'Βάγια', 'Βαλάντω', 'Βαλεντίνα', 'Βαλέρια', 'Βαρβάρα', 'Βαρσαμία', 'Βασιλεία', 'Βασιλική', 'Βεατρίκη', 'Βελισσαρία', 'Βενετία', 'Βερόνικα', 'Βησσαρία', 'Βικέντια', 'Βικτόρια', 'Βιολέτα', 'Βιργινία', 'Βλασία', 'Βρυσηίς',
'Γαβριέλλα', 'Γαλάτεια', 'Γαλήνη', 'Γαρυφαλλιά', 'Γενοβέφα', 'Γερακίνα', 'Γερασιμούλα', 'Γεσθημανή', 'Γεωργία', 'Γιασεμή', 'Γκόλφω', 'Γλαύκη', 'Γλυκερία', 'Γραμματική',
'Δαβιδούλα', 'Δαμασκηνή', 'Δαμιανή', 'Δανάη', 'Δάφνη', 'Δέσποινα', 'Δήμητρα', 'Δημούλα', 'Διαλεκτή', 'Διδώ', 'Δικαία', 'Διονυσία', 'Δόμνα', 'Δροσιά', 'Δωροθέα',
'Ειρήνη', 'Ελένη', 'Ελεονόρα', 'Ελευθερία', 'Ελισάβετ', 'Έλλη', 'Ελπίς', 'Εμμανουέλα', 'Επιστήμη', 'Ερασμία', 'Ερατώ', 'Εριέτα', 'Εριφύλη', 'Ερμιόνη', 'Ερωφίλη', 'Εύα', 'Ευαγγελία', 'Ευανθία', 'Ευγενία', 'Ευδοκία', 'Ευδοξία', 'Ευθαλία', 'Ευθυμία', 'Εύκλεια', 'Ευλαμπία', 'Ευρυδίκη', 'Ευρύκλεια', 'Ευσεβεία', 'Ευσταθία', 'Ευστρατία', 'Ευτέρπη', 'Ευτυχία',
'Ζαμπέτα', 'Ζαφειρία', 'Ζαχαρούλα', 'Ζηναϊς', 'Ζηνοβία', 'Ζησούλα', 'Ζωή',
'Ήβη', 'Ηλέκτρα', 'Ήλια', 'Ηλιάνα', 'Ήρα', 'Ηράκλεια', 'Ηώ',
'Θαλασσινή', 'Θάλεια', 'Θεανώ', 'Θέκλα', 'Θέμις', 'Θεμιστόκλεια', 'Θεοδοσία', 'Θεοδότη', 'Θεοδούλη', 'Θεοδώρα', 'Θεόκλεια', 'Θεολογία', 'Θεοπίστη', 'Θεοφανία', 'Θεοφίλη', 'Θεοφύλακτη', 'Θεοχαρούλα', 'Θέτις', 'Θεώνη', 'Θηρεσία', 'Θωμαίς',
'Ιακωβίνα', 'Ιγνατία', 'Ινώ', 'Ιοκάστη', 'Ιορδανία', 'Ιουλία', 'Ιουλιανή', 'Ιππολύτη', 'Ίρις', 'Ισαβέλλα', 'Ισιδώρα', 'Ισμήνη', 'Ιφιγένεια', 'Ιωάννα', 'Ιωσηφίνα',
'Καλή', 'Καλλίνικη', 'Καλλιόπη', 'Καλλιρρόη', 'Καλομοίρα', 'Καλυψώ', 'Κανέλλα', 'Καρυοφυλλιά', 'Κασσάνδρα', 'Κασσιανή', 'Κερασιά', 'Κλαίρη', 'Κλειώ', 'Κλεοπάτρα', 'Κλημεντίνη', 'Κλυταιμνήστρα', 'Κοκκώνα', 'Κομνηνή', 'Κονδυλία', 'Κοραλία', 'Κορνηλία', 'Κόσμια', 'Κρινιώ', 'Κρυσταλλένια', 'Κυβέλη', 'Κυδωνία', 'Κυπαρισσία', 'Κυπριανή', 'Κυριακή', 'Κωνσταντίνα',
'Λαζαρία', 'Λαμπρινή', 'Λασκαρίνα', 'Λαυρεντία', 'Λεμονιά', 'Λευκοθέα', 'Λεώνη', 'Λεωνιδιά', 'Λήδα', 'Λητώ', 'Λουίζα', 'Λουκία', 'Λουλουδένια', 'Λυγερή', 'Λυδία',
'Μαγδαληνή', 'Μακρίνα', 'Μαλαματένια', 'Μαλβίνα', 'Μάνθα', 'Μαντώ', 'Μαργαρίτα', 'Μάρθα', 'Μαρία', 'Μαριάνθη', 'Μαρίνα', 'Μαρκέλλα', 'Ματθίλδη', 'Μαύρα', 'Μελένια', 'Μελέτια', 'Μελίνα', 'Μελπομένη', 'Μερόπη', 'Μεταξία', 'Μηλιά', 'Μιράντα', 'Μιχαέλα', 'Μόσχα', 'Μυρσίνη',
'Ναυσικά', 'Νεκταρία', 'Νεόκλεια', 'Νερατζιά', 'Νεφέλη', 'Νίκη', 'Νικητία', 'Νικολέτα',
'Ξανθή', 'Ξανθίππη', 'Ξένη',
'Οδύσσεια', 'Όλγα', 'Ολύμπια', 'Ουρανία',
'Παγώνα', 'Παναγία', 'Παναγιώτα', 'Πανδώρα', 'Παντελία', 'Πανωραία', 'Παρασκευή', 'Παρθένα', 'Πασχαλιά', 'Παταπία', 'Παυλίνα', 'Πελαγία', 'Περιστέρα', 'Περσεφόνη', 'Πέτρα', 'Πηγή', 'Πηνελόπη', 'Ποθητή', 'Πολύβια', 'Πολύδωρα', 'Πολύμνια', 'Πολυξένη', 'Πολυτίμη', 'Πολυχρονία', 'Πούλια', 'Προδρομία',
'Ραλλία', 'Ρέα', 'Ρεβέκκα', 'Ρεγγίνα', 'Ρηγούλα', 'Ροδιά', 'Ρόζα', 'Ρουμπίνη', 'Ρούσα', 'Ρωξάνη',
'Σαββούλα', 'Σαλώμη', 'Σαπφώ', 'Σάρρα', 'Σεβαστή', 'Σεβαστιανή', 'Σελήνη', 'Σεμίνα', 'Σεραφεία', 'Σμαράγδα', 'Σουλτάνα', 'Σουμέλα', 'Σοφία', 'Σπάρτη', 'Σπυριδούλα', 'Σταματίνα', 'Σταυρούλα', 'Στεργιανή', 'Στεφανία', 'Στυλιανή', 'Συμεωνία', 'Σωζούσα', 'Σωτηρία', 'Σωφρονία',
'Ταξιαρχία', 'Τατιάνα', 'Τερψιχόρη', 'Τιμοθέα', 'Τριαντάφυλλη', 'Τρισεύγενη', 'Τρυφωνία', 'Τσαμπίκα',
'Υακίνθη', 'Υβόννη', 'Υπαπαντή',
'Φαίδρα', 'Φανουρία', 'Φεβρωνία', 'Φερενίκη', 'Φιλαρέτη', 'Φιλίππα', 'Φιλιππία', 'Φιλιώ', 'Φιλοθέη', 'Φιλομήλα', 'Φλώρα', 'Φλωρεντία', 'Φοίβη', 'Φραντζέσκα', 'Φρειδερίκη', 'Φρύνη', 'Φωτεινή',
'Χάιδω', 'Χαρά', 'Χαραλαμπία', 'Χάρη', 'Χαρίκλεια', 'Χιονιά', 'Χλόη', 'Χριστοδούλα', 'Χριστόφιλη', 'Χριστοφόρα', 'Χρυσάνθη', 'Χρυσαυγή', 'Χρυσαφένια', 'Χρυσοβαλάντω', 'Χρυσόστομη', 'Χρυσούλα',
);
protected static $firstName = array(
'Αβραάμ', 'Αγαθάγγελος', 'Αγαθοκλής', 'Αγαθόνικος', 'Αγαμέμνων', 'Αγαπητός', 'Αγάπιος', 'Άγγελος', 'Αγησίλαος', 'Αδάμ', 'Αδαμάντιος', 'Άδωνις', 'Αθανάσιος', 'Αθηναγόρας', 'Αθηνόδωρος', 'Αιμίλιος', 'Ακριβός', 'Ακρίτας', 'Αλέξανδρος', 'Αλέξιος', 'Αλκιβιάδης', 'Αμβρόσιος', 'Αναγνώστης', 'Ανανίας', 'Αναξαγόρας', 'Ανάργυρος', 'Αναστάσιος', 'Ανδροκλής', 'Ανδρόνικος', 'Άνθιμος', 'Ανθούλης', 'Αντίγονος', 'Αντίπατρος', 'Αντύπας', 'Αντώνιος', 'Απόλλων', 'Απόστολος', 'Αργύριος', 'Άρης', 'Αρίσταρχος', 'Αριστόβουλος', 'Αριστομένης', 'Άριστος', 'Αριστοτέλης', 'Αριστοφάνης', 'Αρτέμιος', 'Αρχέλαος', 'Αρχιμήδης', 'Ασημής', 'Ασκληπιός', 'Αστέριος', 'Αυγέρης', 'Αύγουστος', 'Αυξέντιος', 'Αφέντης', 'Αχιλλέας',
'Βάιος', 'Βαλάντης', 'Βαλεντίνος', 'Βαλέριος', 'Βαρδής', 'Βαρθολομαίος', 'Βαρσάμος', 'Βασίλειος', 'Βασίλης', 'Βελισσάριος', 'Βενέτιος', 'Βενιαμίν', 'Βενιζέλος', 'Βησσαρίων', 'Βικέντιος', 'Βλαδίμηρος', 'Βλάσιος', 'Βρασίδας', 'Βύρων',
'Γαβριήλ', 'Γαλάτιος', 'Γαληνός', 'Γαρύφαλλος', 'Γεράσιμος', 'Γεώργιος', 'Γκίκας', 'Γρηγόριος',
'Δαμασκηνός', 'Δαμιανός', 'Δανιήλ', 'Δημήτριος', 'Δημοκράτης', 'Δημόκριτος', 'Δήμος', 'Δημοσθένης', 'Δίκαιος', 'Διογένης', 'Διομήδης', 'Διονύσιος', 'Δομήνικος', 'Δράκων', 'Δρόσος', 'Δωρόθεος',
'Ειρηναίος', 'Έκτορας', 'Ελευθέριος', 'Ελισσαίος', 'Εμμανουήλ', 'Έξαρχος', 'Επαμεινώνδας', 'Ερμής', 'Ερμόλαος', 'Ερρίκος', 'Ερωτόκριτος', 'Ευάγγελος', 'Ευγένιος', 'Ευδόξιος', 'Ευθύμιος', 'Ευκλείδης', 'Ευμένιος', 'Ευριπίδης', 'Ευσέβιος', 'Ευστάθιος', 'Ευστράτιος', 'Ευτύχιος', 'Εφραίμ',
'Ζαφείριος', 'Ζαχαρίας', 'Ζηνόβιος', 'Ζήνων',
'Ηλίας', 'Ηρακλής', 'Ηρόδοτος', 'Ησαΐας',
'Θαλής', 'Θεμιστοκλής', 'Θεοδόσιος', 'Θεόδουλος', 'Θεόδωρος', 'Θεόκλητος', 'Θεολόγος', 'Θεόπιστος', 'Θεοτόκης', 'Θεοφάνης', 'Θεόφιλος', 'Θεόφραστος', 'Θεοφύλακτος', 'Θεοχάρης', 'Θησεύς', 'Θουκυδίδης', 'Θρασύβουλος', 'Θωμάς',
'Ιάκωβος', 'Ιάσων', 'Ιγνάτιος', 'Ιερεμίας', 'Ιερόθεος', 'Ιερώνυμος', 'Ίκαρος', 'Ιορδάνης', 'Ιουλιανός', 'Ιούλιος', 'Ιπποκράτης', 'Ιππόλυτος', 'Ισαάκ', 'Ισίδωρος', 'Ιωακείμ', 'Ιωάννης', 'Ίων', 'Ιωνάς', 'Ιωσήφ',
'Καλλίνικος', 'Κάρολος', 'Κηρύκος', 'Κίμων', 'Κλεάνθης', 'Κλέαρχος', 'Κλεόβουλος', 'Κλεομένης', 'Κλεόπας', 'Κλήμης', 'Κομνηνός', 'Κορνήλιος', 'Κοσμάς', 'Κρυστάλλης', 'Κυπριανός', 'Κυριαζής', 'Κυριάκος', 'Κύρος', 'Κωνσταντίνος',
'Λαέρτης', 'Λάζαρος', 'Λάμπρος', 'Λαοκράτης', 'Λάσκαρης', 'Λαυρέντιος', 'Λέανδρος', 'Λεμονής', 'Λεονάρδος', 'Λέων', 'Λεωνίδας', 'Λογοθέτης', 'Λουδοβίκος', 'Λουκάς', 'Λουκιανός', 'Λυκούργος', 'Λύσανδρος',
'Μαγδαληνός', 'Μακάριος', 'Μαρίνος', 'Μάριος', 'Μάρκος', 'Μαρτίνος', 'Ματθαίος', 'Μαυρίκιος', 'Μαυροειδής', 'Μαύρος', 'Μεγακλής', 'Μεθόδιος', 'Μελέτιος', 'Μένανδρος', 'Μενέλαος', 'Μερκούριος', 'Μηνάς', 'Μιλτιάδης', 'Μίνωας', 'Μιχαήλ',
'Ναθαναήλ', 'Ναπολέων', 'Νέαρχος', 'Νεκτάριος', 'Νεοκλής', 'Νεόφυτος', 'Νίκανδρος', 'Νικήτας', 'Νικηφόρος', 'Νικόδημος', 'Νικόλαος', 'Νίκων',
'Ξανθός', 'Ξενοφώντης',
'Οδυσσέας', 'Όθων', 'Όμηρος', 'Ορέστης', 'Ορφέας',
'Παναγιώτης', 'Πανορμίτης', 'Πανταζής', 'Παντελεήμων', 'Παρασκευάς', 'Παράσχος', 'Πάρις', 'Πασχάλης', 'Πάτροκλος', 'Παύλος', 'Παυσανίας', 'Πελοπίδας', 'Περικλής', 'Πέτρος', 'Πίνδαρος', 'Πλάτων', 'Πλούταρχος', 'Πολύβιος', 'Πολύδωρος', 'Πολυζώης', 'Πολύκαρπος', 'Πολυκράτης', 'Πολυχρόνιος', 'Πραξιτέλης', 'Πρόδρομος', 'Προκόπιος', 'Προμηθέας', 'Πυθαγόρας', 'Πύρρος',
'Ράλλης', 'Ραφαήλ', 'Ρήγας', 'Ρίζος', 'Ροδόφλος', 'Ρωμανός',
'Σάββας', 'Σαμουήλ', 'Σαράντης', 'Σεβαστιανός', 'Σεραφείμ', 'Σέργιος', 'Σολομών', 'Σόλων', 'Σοφοκλής', 'Σπυρίδων', 'Σταμάτιος', 'Σταύρος', 'Στέργιος', 'Στέφανος', 'Στυλιανός', 'Συμεών', 'Σώζων', 'Σωκράτης', 'Σωτήριος',
'Ταξίαρχος', 'Τηλέμαχος', 'Τιμόθεος', 'Τιμολέων', 'Τίμων', 'Τίτος', 'Τριαντάφυλλος', 'Τρύφων', 'Τσαμπίκος',
'Υάκινθος',
'Φαίδων', 'Φανούριος', 'Φιλήμων', 'Φίλιππος', 'Φοίβος', 'Φραγκίσκος', 'Φρειδερίκος', 'Φρίξος', 'Φωκάς', 'Φωκίων', 'Φωτεινός', 'Φώτιος',
'Χαράλαμπος', 'Χαρίλαος', 'Χαρίτος', 'Χρήστος', 'Χριστόδουλος', 'Χριστόφορος', 'Χρύσανθος', 'Χρυσοβαλάντιος', 'Χρυσόστομος',
'Αποστολία', 'Αυγή', 'Αγάθη', 'Αγάπη', 'Αγγελική', 'Αγλαΐα', 'Αγνή', 'Αγόρω', 'Αδαμαντία', 'Αηδόνα', 'Αθανασία', 'Αθηνά', 'Αθηνοδώρα', 'Αικατερίνη', 'Αιμιλία', 'Ακριβή', 'Αλεξάνδρα', 'Αλεξία', 'Αλίκη', 'Άλκηστις', 'Αλκινόη', 'Αμαλία', 'Αμβροσία', 'Αμφιθέα', 'Αμφιτρίτη', 'Ανάργυρη', 'Αναστασία', 'Ανατολή', 'Ανδριανή', 'Ανδρομάχη', 'Ανδρομέδα', 'Ανδρονίκη', 'Ανθή', 'Άννα', 'Αντιγόνη', 'Αντωνία', 'Απολλωνία', 'Αποστολία', 'Αργυρώ', 'Αρετή', 'Αριάδνη', 'Αριστέα', 'Άρτεμις', 'Αρτεμισία', 'Αρχοντία', 'Ασημίνα', 'Ασπασία', 'Αστέρω', 'Αταλάντη', 'Αυγουστίνα', 'Αφέντρα', 'Αφροδίτη', 'Αχιλλεία',
'Βάγια', 'Βαλάντω', 'Βαλεντίνα', 'Βαλέρια', 'Βαρβάρα', 'Βαρσαμία', 'Βασιλεία', 'Βασιλική', 'Βεατρίκη', 'Βελισσαρία', 'Βενετία', 'Βερόνικα', 'Βησσαρία', 'Βικέντια', 'Βικτόρια', 'Βιολέτα', 'Βιργινία', 'Βλασία', 'Βρυσηίς',
'Γαβριέλλα', 'Γαλάτεια', 'Γαλήνη', 'Γαρυφαλλιά', 'Γενοβέφα', 'Γερακίνα', 'Γερασιμούλα', 'Γεσθημανή', 'Γεωργία', 'Γιασεμή', 'Γκόλφω', 'Γλαύκη', 'Γλυκερία', 'Γραμματική',
'Δαβιδούλα', 'Δαμασκηνή', 'Δαμιανή', 'Δανάη', 'Δάφνη', 'Δέσποινα', 'Δήμητρα', 'Δημούλα', 'Διαλεκτή', 'Διδώ', 'Δικαία', 'Διονυσία', 'Δόμνα', 'Δροσιά', 'Δωροθέα',
'Ειρήνη', 'Ελένη', 'Ελεονόρα', 'Ελευθερία', 'Ελισάβετ', 'Έλλη', 'Ελπίς', 'Εμμανουέλα', 'Επιστήμη', 'Ερασμία', 'Ερατώ', 'Εριέτα', 'Εριφύλη', 'Ερμιόνη', 'Ερωφίλη', 'Εύα', 'Ευαγγελία', 'Ευανθία', 'Ευγενία', 'Ευδοκία', 'Ευδοξία', 'Ευθαλία', 'Ευθυμία', 'Εύκλεια', 'Ευλαμπία', 'Ευρυδίκη', 'Ευρύκλεια', 'Ευσεβεία', 'Ευσταθία', 'Ευστρατία', 'Ευτέρπη', 'Ευτυχία',
'Ζαμπέτα', 'Ζαφειρία', 'Ζαχαρούλα', 'Ζηναϊς', 'Ζηνοβία', 'Ζησούλα', 'Ζωή',
'Ήβη', 'Ηλέκτρα', 'Ήλια', 'Ηλιάνα', 'Ήρα', 'Ηράκλεια', 'Ηώ',
'Θαλασσινή', 'Θάλεια', 'Θεανώ', 'Θέκλα', 'Θέμις', 'Θεμιστόκλεια', 'Θεοδοσία', 'Θεοδότη', 'Θεοδούλη', 'Θεοδώρα', 'Θεόκλεια', 'Θεολογία', 'Θεοπίστη', 'Θεοφανία', 'Θεοφίλη', 'Θεοφύλακτη', 'Θεοχαρούλα', 'Θέτις', 'Θεώνη', 'Θηρεσία', 'Θωμαίς',
'Ιακωβίνα', 'Ιγνατία', 'Ινώ', 'Ιοκάστη', 'Ιορδανία', 'Ιουλία', 'Ιουλιανή', 'Ιππολύτη', 'Ίρις', 'Ισαβέλλα', 'Ισιδώρα', 'Ισμήνη', 'Ιφιγένεια', 'Ιωάννα', 'Ιωσηφίνα',
'Καλή', 'Καλλίνικη', 'Καλλιόπη', 'Καλλιρρόη', 'Καλομοίρα', 'Καλυψώ', 'Κανέλλα', 'Καρυοφυλλιά', 'Κασσάνδρα', 'Κασσιανή', 'Κερασιά', 'Κλαίρη', 'Κλειώ', 'Κλεοπάτρα', 'Κλημεντίνη', 'Κλυταιμνήστρα', 'Κοκκώνα', 'Κομνηνή', 'Κονδυλία', 'Κοραλία', 'Κορνηλία', 'Κόσμια', 'Κρινιώ', 'Κρυσταλλένια', 'Κυβέλη', 'Κυδωνία', 'Κυπαρισσία', 'Κυπριανή', 'Κυριακή', 'Κωνσταντίνα',
'Λαζαρία', 'Λαμπρινή', 'Λασκαρίνα', 'Λαυρεντία', 'Λεμονιά', 'Λευκοθέα', 'Λεώνη', 'Λεωνιδιά', 'Λήδα', 'Λητώ', 'Λουίζα', 'Λουκία', 'Λουλουδένια', 'Λυγερή', 'Λυδία',
'Μαγδαληνή', 'Μακρίνα', 'Μαλαματένια', 'Μαλβίνα', 'Μάνθα', 'Μαντώ', 'Μαργαρίτα', 'Μάρθα', 'Μαρία', 'Μαριάνθη', 'Μαρίνα', 'Μαρκέλλα', 'Ματθίλδη', 'Μαύρα', 'Μελένια', 'Μελέτια', 'Μελίνα', 'Μελπομένη', 'Μερόπη', 'Μεταξία', 'Μηλιά', 'Μιράντα', 'Μιχαέλα', 'Μόσχα', 'Μυρσίνη',
'Ναυσικά', 'Νεκταρία', 'Νεόκλεια', 'Νερατζιά', 'Νεφέλη', 'Νίκη', 'Νικητία', 'Νικολέτα',
'Ξανθή', 'Ξανθίππη', 'Ξένη',
'Οδύσσεια', 'Όλγα', 'Ολύμπια', 'Ουρανία',
'Παγώνα', 'Παναγία', 'Παναγιώτα', 'Πανδώρα', 'Παντελία', 'Πανωραία', 'Παρασκευή', 'Παρθένα', 'Πασχαλιά', 'Παταπία', 'Παυλίνα', 'Πελαγία', 'Περιστέρα', 'Περσεφόνη', 'Πέτρα', 'Πηγή', 'Πηνελόπη', 'Ποθητή', 'Πολύβια', 'Πολύδωρα', 'Πολύμνια', 'Πολυξένη', 'Πολυτίμη', 'Πολυχρονία', 'Πούλια', 'Προδρομία',
'Ραλλία', 'Ρέα', 'Ρεβέκκα', 'Ρεγγίνα', 'Ρηγούλα', 'Ροδιά', 'Ρόζα', 'Ρουμπίνη', 'Ρούσα', 'Ρωξάνη',
'Σαββούλα', 'Σαλώμη', 'Σαπφώ', 'Σάρρα', 'Σεβαστή', 'Σεβαστιανή', 'Σελήνη', 'Σεμίνα', 'Σεραφεία', 'Σμαράγδα', 'Σουλτάνα', 'Σουμέλα', 'Σοφία', 'Σπάρτη', 'Σπυριδούλα', 'Σταματίνα', 'Σταυρούλα', 'Στεργιανή', 'Στεφανία', 'Στυλιανή', 'Συμεωνία', 'Σωζούσα', 'Σωτηρία', 'Σωφρονία',
'Ταξιαρχία', 'Τατιάνα', 'Τερψιχόρη', 'Τιμοθέα', 'Τριαντάφυλλη', 'Τρισεύγενη', 'Τρυφωνία', 'Τσαμπίκα',
'Υακίνθη', 'Υβόννη', 'Υπαπαντή',
'Φαίδρα', 'Φανουρία', 'Φεβρωνία', 'Φερενίκη', 'Φιλαρέτη', 'Φιλίππα', 'Φιλιππία', 'Φιλιώ', 'Φιλοθέη', 'Φιλομήλα', 'Φλώρα', 'Φλωρεντία', 'Φοίβη', 'Φραντζέσκα', 'Φρειδερίκη', 'Φρύνη', 'Φωτεινή',
'Χάιδω', 'Χαρά', 'Χαραλαμπία', 'Χάρη', 'Χαρίκλεια', 'Χιονιά', 'Χλόη', 'Χριστοδούλα', 'Χριστόφιλη', 'Χριστοφόρα', 'Χρυσάνθη', 'Χρυσαυγή', 'Χρυσαφένια', 'Χρυσοβαλάντω', 'Χρυσόστομη', 'Χρυσούλα',
);
protected static $lastNameMale = array(
'Αγγελίδης', 'Αγγελόπουλος', 'Αθανασιάδης', 'Αλαφούζος', 'Αλεβίζος', 'Αλεξόπουλος', 'Αλιβιζάτος', 'Αναγνωστόπουλος', 'Αναστασιάδης', 'Αναστασίου', 'Ανδρεάδης', 'Αντωνιάδης', 'Αντωνόπουλος', 'Αποστολόπουλος',
'Αξιώτης', 'Βαρουξής', 'Βασιλείου', 'Βασιλόπουλος', 'Βενιζέλος', 'Βέργας', 'Βιτάλης', 'Βούλγαρης', 'Γαλάνης', 'Γερμανός', 'Γεωργίου', 'Γεωργιάδης', 'Γιάγκος', 'Γιαννόπουλος', 'Γιαννακόπουλος', 'Γιάνναρης',
'Γούσιος', 'Γρηγοριάδης', 'Δασκαλόπουλος', 'Δελής', 'Διαμαντόπουλος', 'Δημητριάδης', 'Δουρέντης', 'Ελευθερόπουλος', 'Ελευθεριάδης', 'Ευθυμιάδης', 'Ευσταθιάδης', 'Ευταξίας', 'Ζαχαριάδης', 'Ζερβός', 'Ζωγραφός',
'Ηλιάδης', 'Ηλιόπουλος', 'Θεοτόκης', 'Θεωδωρόπουλος', 'Θεωδώρου', 'Θεωδωρίδης', 'Ιατρίδης', 'Ιωαννίδης', 'Καλύβας', 'Καραβίας', 'Καννελόπουλος', 'Καραγιάννης','Κεδίκογλου', 'Κολιάτσος', 'Κόκκινος', 'Κομνηνός',
'Κοντολέων', 'Κοντός', 'Κόρακας', 'Κορομηλάς', 'Κορωναίος', 'Κοσμόπουλος', 'Κουταλιανός', 'Κυπραίος', 'Κωνσταντίνου', 'Κωνσταντινίδης', 'Κωνσταντόπουλος', 'Κωστόπουλος', 'Κρητικός', 'Κυριακόπουλος', 'Λαμέρας',
'Λαμπρόπουλος', 'Λούλης', 'Μακρής', 'Μανιάκης', 'Μαρκόπουλος', 'Μαυρλίδης', 'Μεταξάς', 'Μιχαηλίδης', 'Μπλέτσας', 'Νικολαΐδης', 'Νικολάκος', 'Νικολόπουλος', 'Ξανθόπουλος', 'Ξένος', 'Οικονομίδης', 'Ουζουνίδης',
'Παναγιωτίδης', 'Πανταζής', 'Παπαγεωργίου', 'Παπάγος', 'Παπαδάκης', 'Παπαδόπουλος', 'Παπάζογλου', 'Παπακώστας', 'Παπανδρέου', 'Παπανικολάου', 'Παπαντωνίου', 'Παπαστεφάνου', 'Παπαφιλίππου', 'Παπαϊωάννου', 'Παππάς',
'Παυλόπουλος', 'Πολίτης', 'Πρωτοβεστιάριος', 'Πρωτονοτάριος', 'Ρούσσος', 'Ρέντης', 'Ράγκος', 'Ρόκας', 'Σακελλάρης', 'Σαμαράς', 'Σκλαβούνος', 'Σπανός', 'Σιδέρης', 'Σπηλιωτόπουλος', 'Σπυρόπουλος', 'Σταματιάδης',
'Σταυρόπουλος', 'Στεφανόπουλος', 'Ταμτάκος', 'Τοκατλίδης', 'Τριανταφυλλίδης', 'Τρικούπη', 'Τρικούπης', 'Φιλιππίδης', 'Φλέσσας', 'Φωτιάδης', 'Φωτόπουλος', 'Χαραλαμπίδης', 'Χατζηνικόλαου', 'Χριστόπουλος',
);
protected static $lastNameFemale = array(
'Αγγελίδου', 'Αγγελοπούλου', 'Αλεξάνδρου', 'Αλεξάνδρου', 'Αλεξίου', 'Αναγνώστου', 'Αναστασίου', 'Ανδρέου', 'Αντωνοπούλου', 'Ανυφαντή', 'Ανυφαντή', 'Αργυρού', 'Βαριμπόμπη', 'Βιτάλη', 'Γάσπαρη', 'Γαλάνη', 'Γεννήτη',
'Γερμανού', 'Γεωγιάδου', 'Γεωργίβαλου', 'Γεωργίου', 'Γιακουμή', 'Γιαννακοπούλου', 'Γρηγοριάδου', 'Δασκαλοπούλου', 'Διδασκάλου', 'Δημητριάδου', 'Ελευθερίου', 'Ευθυμιάδου', 'Ηλιοπούλου', 'Θεοτόκου', 'Θεωδωροπούλου',
'Θεωδώρου', 'Θεωδωρίδου', 'Ιωάννου', 'Καπετανάκη', 'Καπνού', 'Καρσιβάνη', 'Κοκκίνου', 'Κωνσταντινίδου', 'Κωνσταντίνου', 'Κυριακοπούλου', 'Λάσκαρη', 'Λασκαρού', 'Μάκρη', 'Μακρή', 'Μοραΐτη', 'Μπόγρη', 'Μυλωνά',
'Νικολάου', 'Νικολοπούλου', 'Ξανθοπούλου', 'Οικονομίδου', 'Οικονομοπούλου', 'Οικονόμου', 'Παπαδοπούλου', 'Παπακιρίσκου', 'Παπακωνσταντίνου', 'Παπαμάρκου', 'Παπαστάμου', 'Ράφτη', 'Σακελλαρίου', 'Σελινά', 'Σκουτέρη',
'Σπανού', 'Σταματιάδου', 'Σωπολιάτη', 'Τριανταφυλλίδου', 'Φοσκιά', 'Φωτιάδου', 'Χαραλαμπίδου', 'Χατζηιωάννου',
);
protected static $titleMale = array('κος.', 'κ.');
protected static $titleFemale = array('δις.', 'δνις.', 'κα.');
/**
* @param string|null $gender 'male', 'female' or null for any
* @example 'Αγγελόπουλος'
*/
public function lastName($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::lastNameMale();
} elseif ($gender === static::GENDER_FEMALE) {
return static::lastNameFemale();
}
return $this->generator->parse(static::randomElement(static::$lastNameFormat));
}
/**
* @example 'Θεωδωρόπουλος'
*/
public static function lastNameMale()
{
return static::randomElement(static::$lastNameMale);
}
/**
* @example 'Κοκκίνου'
*/
public static function lastNameFemale()
{
return static::randomElement(static::$lastNameFemale);
}
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\el_GR;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'+30 2# ########',
'+30 6# ########',
'+30 2### ######',
'+30 6### ######',
'+302#########',
'+306#########',
'2#########',
'6#########',
'2### ######',
'6### ######',
);
}

View File

@@ -0,0 +1,57 @@
<?php
namespace Faker\Provider\en_AU;
/**
* Class Address
* @see http://www.ipaustralia.gov.au/about-us/corporate/address-standards/
* @package Faker\Provider\en_AU
*/
class Address extends \Faker\Provider\en_US\Address
{
protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port', 'St.');
protected static $buildingNumber = array('###', '##', '#');
protected static $buildingLetters = array('A','B','C','D');
protected static $streetSuffix = array(
'Access', 'Alley', 'Alleyway', 'Amble', 'Anchorage', 'Approach', 'Arcade', 'Artery', 'Avenue', 'Basin', 'Beach', 'Bend', 'Block', 'Boulevard', 'Brace', 'Brae', 'Break', 'Bridge', 'Broadway', 'Brow', 'Bypass', 'Byway', 'Causeway', 'Centre', 'Centreway', 'Chase', 'Circle', 'Circlet', 'Circuit', 'Circus', 'Close', 'Colonnade', 'Common', 'Concourse', 'Copse', 'Corner', 'Corso', 'Court', 'Courtyard', 'Cove', 'Crescent', 'Crest', 'Cross', 'Crossing', 'Crossroad', 'Crossway', 'Cruiseway', 'Cul-de-sac', 'Cutting', 'Dale', 'Dell', 'Deviation', 'Dip', 'Distributor', 'Drive', 'Driveway', 'Edge', 'Elbow', 'End', 'Entrance', 'Esplanade', 'Estate', 'Expressway', 'Extension', 'Fairway', 'Fire Track', 'Firetrail', 'Flat', 'Follow', 'Footway', 'Foreshore', 'Formation', 'Freeway', 'Front', 'Frontage', 'Gap', 'Garden', 'Gardens', 'Gate', 'Gates', 'Glade', 'Glen', 'Grange', 'Green', 'Ground', 'Grove', 'Gully', 'Heights', 'Highroad', 'Highway', 'Hill', 'Interchange', 'Intersection', 'Junction', 'Key', 'Landing', 'Lane', 'Laneway', 'Lees', 'Line', 'Link', 'Little', 'Lookout', 'Loop', 'Lower', 'Mall', 'Meander', 'Mew', 'Mews', 'Motorway', 'Mount', 'Nook', 'Outlook', 'Parade', 'Park', 'Parklands', 'Parkway', 'Part', 'Pass', 'Path', 'Pathway', 'Piazza', 'Place', 'Plateau', 'Plaza', 'Pocket', 'Point', 'Port', 'Promenade', 'Quad', 'Quadrangle', 'Quadrant', 'Quay', 'Quays', 'Ramble', 'Ramp', 'Range', 'Reach', 'Reserve', 'Rest', 'Retreat', 'Ride', 'Ridge', 'Ridgeway', 'Right Of Way', 'Ring', 'Rise', 'River', 'Riverway', 'Riviera', 'Road', 'Roads', 'Roadside', 'Roadway', 'Ronde', 'Rosebowl', 'Rotary', 'Round', 'Route', 'Row', 'Rue', 'Run', 'Service Way', 'Siding', 'Slope', 'Sound', 'Spur', 'Square', 'Stairs', 'State Highway', 'Steps', 'Strand', 'Street', 'Strip', 'Subway', 'Tarn', 'Terrace', 'Thoroughfare', 'Tollway', 'Top', 'Tor', 'Towers', 'Track', 'Trail', 'Trailer', 'Triangle', 'Trunkway', 'Turn', 'Underpass', 'Upper', 'Vale', 'Viaduct', 'View', 'Villas', 'Vista', 'Wade', 'Walk', 'Walkway', 'Way', 'Wynd'
);
protected static $postcode = array('####');
protected static $state = array(
'Australian Capital Territory', 'New South Wales', 'Northern Territory', 'Queensland', 'South Australia', 'Tasmania', 'Victoria', 'Western Australia'
);
protected static $stateAbbr = array(
'ACT', 'NSW', 'NT', 'QLD', 'SA', 'TAS', 'VIC', 'WA'
);
protected static $streetAddressFormats = array(
'{{buildingNumber}} {{streetName}}',
'{{buildingNumber}}{{buildingLetter}} {{streetName}}',
'{{secondaryAddress}} {{buildingNumber}} {{streetName}}',
);
protected static $secondaryAddressFormats = array(
'Apt. ###',
'Flat ##',
'Suite ###',
'Unit ##',
'Level #',
'### /',
'## /',
'# /',
);
/**
* Returns a sane building letter
* @example B
*/
public static function buildingLetter()
{
return static::toUpper(static::randomElement(static::$buildingLetters));
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\en_AU;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.com.au', 'yahoo.com.au', 'hotmail.com.au');
protected static $tld = array('com', 'com.au', 'org', 'org.au', 'net', 'net.au', 'biz', 'info', 'edu', 'edu.au');
}

View File

@@ -0,0 +1,63 @@
<?php
namespace Faker\Provider\en_AU;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
// Local calls
'#### ####',
'####-####',
'####.####',
'########',
// National dialing
'0{{areaCode}} #### ####',
'0{{areaCode}}-####-####',
'0{{areaCode}}.####.####',
'0{{areaCode}}########',
// Optional parenthesis
'(0{{areaCode}}) #### ####',
'(0{{areaCode}})-####-####',
'(0{{areaCode}}).####.####',
'(0{{areaCode}})########',
// International drops the 0
'+61 {{areaCode}} #### ####',
'+61-{{areaCode}}-####-####',
'+61.{{areaCode}}.####.####',
'+61{{areaCode}}########',
);
// 04 Mobile telephones (Australia-wide) mostly commonly written 4 - 3 - 3 instead of 2 - 4 - 4
protected static $mobileFormats = array(
'04## ### ###',
'04##-###-###',
'04##.###.###',
'+61 4## ### ###',
'+61-4##-###-###',
'+61.4##.###.###',
);
protected static $areacodes = array(
'2', '3', '7', '8'
);
public static function phoneNumber()
{
$format = static::numerify(static::randomElement(static::$formats));
return str_replace('{{areaCode}}', static::areaCode(), $format);
}
public static function mobileNumber()
{
return static::numerify(static::randomElement(static::$mobileFormats));
}
public static function areaCode()
{
return static::numerify(static::randomElement(static::$areacodes));
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace Faker\Provider\en_CA;
/**
* Extend US class since most fields share the same format
*/
class Address extends \Faker\Provider\en_US\Address
{
protected static $postcode = array('?#? #?#', '?#?-#?#', '?#?#?#');
protected static $postcodeLetters = array('A','B','C','E','G','H','J','K','L','M','N','P','R','S','T','V','X','Y');
protected static $province = array(
'Alberta', 'British Columbia', 'Manitoba', 'New Brunswick', 'Newfoundland and Labrador', 'Northwest Territories', 'Nova Scotia', 'Nunavut', 'Ontario', 'Prince Edward Island', 'Quebec', 'Saskatchewan', 'Yukon Territory',
);
protected static $provinceAbbr = array(
'AB', 'BC', 'MB', 'NB', 'NL', 'NT', 'NS', 'NU', 'ON', 'PE', 'QC', 'SK', 'YT'
);
protected static $addressFormats = array(
"{{streetAddress}}\n{{city}}, {{provinceAbbr}} {{postcode}}",
);
/**
* @example 'Ontario'
*/
public static function province()
{
return static::randomElement(static::$province);
}
/**
* @example 'ON'
*/
public static function provinceAbbr()
{
return static::randomElement(static::$provinceAbbr);
}
/**
* Returns a postalcode-safe letter
* @example A1B 2C3
*/
public static function randomPostcodeLetter()
{
return static::randomElement(static::$postcodeLetters);
}
/**
* @example A1B 2C3
*/
public static function postcode()
{
$string = static::randomElement(static::$postcode);
$string = preg_replace_callback('/\#/u', 'static::randomDigit', $string);
$string = preg_replace_callback('/\?/u', 'static::randomPostcodeLetter', $string);
return static::toUpper($string);
}
}

View File

@@ -0,0 +1,18 @@
<?php
namespace Faker\Provider\en_CA;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
'%##-###-####',
'%##.###.####',
'%## ### ####',
'(%##) ###-####',
'1-%##-###-####',
'1 (%##) ###-####',
'+1 (%##) ###-####',
'%##-###-#### x###',
'(%##) ###-#### x###',
);
}

View File

@@ -0,0 +1,89 @@
<?php
namespace Faker\Provider\en_GB;
class Address extends \Faker\Provider\Address
{
protected static $cityPrefix = array('North', 'East', 'West', 'South', 'New', 'Lake', 'Port');
protected static $citySuffix = array('town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt', 'chester', 'mouth', 'fort', 'haven', 'side', 'shire');
protected static $buildingNumber = array('###', '##', '#');
protected static $streetSuffix = array(
'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape', 'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners', 'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve', 'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension', 'Extensions', 'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges', 'Fork', 'Forks', 'Fort', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove', 'Groves', 'Harbour', 'Harbours', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Island', 'Islands', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake', 'Lakes', 'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop', 'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Motorway', 'Mount', 'Mountain', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks', 'Parkway', 'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plaza', 'Point', 'Points', 'Port', 'Ports', 'Radial', 'Ramp', 'Ranch', 'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue', 'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs', 'Square', 'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stream', 'Stream', 'Street', 'Streets', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail', 'Tunnel', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via', 'Viaduct', 'View', 'Views', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way', 'Ways', 'Well', 'Wells'
);
protected static $postcode = array('?# #??', '?## #??', '??# #??', '??## #??', '?#? #??', '??#? #??');
protected static $county = array(
'Aberdeenshire', 'Anglesey', 'Angus', 'Argyll', 'Ayrshire', 'Banffshire', 'Bedfordshire', 'Berwickshire', 'Breconshire', 'Buckinghamshire', 'Bute', 'Caernarvonshire', 'Caithness', 'Cambridgeshire', 'Cardiganshire', 'Carmarthenshire', 'Cheshire', 'Clackmannanshire', 'Cornwall', 'Isles of Scilly', 'Cumbria', 'Denbighshire', 'Derbyshire', 'Devon', 'Dorset', 'Dumbartonshire', 'Dumfriesshire', 'Durham', 'East Lothian', 'East Sussex', 'Essex', 'Fife', 'Flintshire', 'Glamorgan', 'Gloucestershire', 'Greater London', 'Greater Manchester', 'Hampshire', 'Hertfordshire', 'Inverness', 'Kent', 'Kincardineshire', 'Kinross-shire', 'Kirkcudbrightshire', 'Lanarkshire', 'Lancashire', 'Leicestershire', 'Lincolnshire', 'London', 'Merionethshire', 'Merseyside', 'Midlothian', 'Monmouthshire', 'Montgomeryshire', 'Moray', 'Nairnshire', 'Norfolk', 'North Yorkshire', 'Northamptonshire', 'Northumberland', 'Nottinghamshire', 'Orkney', 'Oxfordshire', 'Peebleshire', 'Pembrokeshire', 'Perthshire', 'Radnorshire', 'Renfrewshire', 'Ross & Cromarty', 'Roxburghshire', 'Selkirkshire', 'Shetland', 'Shropshire', 'Somerset', 'South Yorkshire', 'Staffordshire', 'Stirlingshire', 'Suffolk', 'Surrey', 'Sutherland', 'Tyne and Wear', 'Warwickshire', 'West Lothian', 'West Midlands', 'West Sussex', 'West Yorkshire', 'Wigtownshire', 'Wiltshire', 'Worcestershire'
);
protected static $country = array(
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla', 'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba', 'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan', 'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil', 'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam', 'Bulgaria', 'Burkina Faso', 'Burundi',
'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile', 'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands', 'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana', 'French Polynesia', 'French Southern Territories',
'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong', 'Hungary',
'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jersey', 'Jordan',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein', 'Lithuania', 'Luxembourg',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands', 'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines', 'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin', 'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe', 'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)', 'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands', 'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland', 'Syrian Arab Republic',
'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America', 'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
);
protected static $cityFormats = array(
'{{cityPrefix}} {{firstName}}{{citySuffix}}',
'{{cityPrefix}} {{firstName}}',
'{{firstName}}{{citySuffix}}',
'{{lastName}}{{citySuffix}}',
);
protected static $streetNameFormats = array(
'{{firstName}} {{streetSuffix}}',
'{{lastName}} {{streetSuffix}}'
);
protected static $streetAddressFormats = array(
'{{buildingNumber}} {{streetName}}',
'{{buildingNumber}} {{streetName}}',
"{{secondaryAddress}}\n{{streetName}}",
);
protected static $addressFormats = array(
"{{streetAddress}}\n{{city}}\n{{postcode}}",
);
protected static $secondaryAddressFormats = array('Flat ##', 'Flat ##?', 'Studio ##', 'Studio ##?');
/**
* @example 'East'
*/
public static function cityPrefix()
{
return static::randomElement(static::$cityPrefix);
}
/**
* @example 'Flat 350'
*/
public static function secondaryAddress()
{
return static::bothify(static::randomElement(static::$secondaryAddressFormats));
}
/**
* @example 'Hampshire'
*/
public static function county()
{
return static::randomElement(static::$county);
}
}

View File

@@ -0,0 +1,9 @@
<?php
namespace Faker\Provider\en_GB;
class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = array('gmail.com', 'yahoo.com', 'hotmail.com', 'gmail.co.uk', 'yahoo.co.uk', 'hotmail.co.uk');
protected static $tld = array('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org', 'co.uk');
}

View File

@@ -0,0 +1,19 @@
<?php
namespace Faker\Provider\en_GB;
class Payment extends \Faker\Provider\Payment
{
/**
* International Bank Account Number (IBAN)
* @link http://en.wikipedia.org/wiki/International_Bank_Account_Number
* @param string $prefix for generating bank account number of a specific bank
* @param string $countryCode ISO 3166-1 alpha-2 country code
* @param integer $length total length without country code and 2 check digits
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'GB', $length = null)
{
return static::iban($countryCode, $prefix, $length);
}
}

Some files were not shown because too many files have changed in this diff Show More