The Rise of Contactless Payments:...
In recent years, contactless payments have surged in popularity, driven...
<?php
namespace Faker\Provider\pl_PL;
/**
* Most popular first and last names published by Ministry of the Interior:
*
* @see https://msw.gov.pl/pl/sprawy-obywatelskie/ewidencja-ludnosci-dowo/statystyki-imion-i-nazw
*/
class Person extends \Faker\Provider\Person
{
protected static $lastNameFormat = [
'{{lastNameMale}}',
'{{lastNameFemale}}',
];
protected static $maleNameFormats = [
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{title}} {{firstNameMale}} {{lastNameMale}}',
'{{firstNameMale}} {{lastNameMale}}',
'{{title}} {{title}} {{firstNameMale}} {{lastNameMale}}',
];
protected static $femaleNameFormats = [
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{title}} {{firstNameFemale}} {{lastNameFemale}}',
'{{firstNameFemale}} {{lastNameFemale}}',
'{{title}} {{title}} {{firstNameFemale}} {{lastNameFemale}}',
];
protected static $firstNameMale = [
'Adam', 'Adrian', 'Alan', 'Albert', 'Aleks', 'Aleksander', 'Alex', 'Andrzej', 'Antoni', 'Arkadiusz', 'Artur',
'Bartek', 'Błażej', 'Borys', 'Bruno', 'Cezary', 'Cyprian', 'Damian', 'Daniel', 'Dariusz', 'Dawid', 'Dominik',
'Emil', 'Ernest', 'Eryk', 'Fabian', 'Filip', 'Franciszek', 'Fryderyk', 'Gabriel', 'Grzegorz', 'Gustaw', 'Hubert',
'Ignacy', 'Igor', 'Iwo', 'Jacek', 'Jakub', 'Jan', 'Jeremi', 'Jerzy', 'Jędrzej', 'Józef', 'Julian', 'Juliusz',
'Kacper', 'Kajetan', 'Kamil', 'Karol', 'Kazimierz', 'Konrad', 'Konstanty', 'Kornel', 'Krystian', 'Krzysztof', 'Ksawery',
'Leon', 'Leonard', 'Łukasz', 'Maciej', 'Maks', 'Maksymilian', 'Marcel', 'Marcin', 'Marek', 'Mariusz', 'Mateusz', 'Maurycy',
'Michał', 'Mieszko', 'Mikołaj', 'Miłosz', 'Natan', 'Nataniel', 'Nikodem', 'Norbert', 'Olaf', 'Olgierd', 'Oliwier', 'Oskar',
'Patryk', 'Paweł', 'Piotr', 'Przemysław', 'Radosław', 'Rafał', 'Robert', 'Ryszard', 'Sebastian', 'Stanisław', 'Stefan', 'Szymon',
'Tadeusz', 'Tomasz', 'Tymon', 'Tymoteusz', 'Wiktor', 'Witold', 'Wojciech',
];
protected static $firstNameFemale = [
'Ada', 'Adrianna', 'Agata', 'Agnieszka', 'Aleksandra', 'Alicja', 'Amelia', 'Anastazja', 'Angelika', 'Aniela', 'Anita',
'Anna', 'Anna', 'Antonina', 'Apolonia', 'Aurelia', 'Barbara', 'Bianka', 'Blanka', 'Dagmara', 'Daria', 'Dominika', 'Dorota',
'Eliza', 'Elżbieta', 'Emilia', 'Ewa', 'Ewelina', 'Gabriela', 'Hanna', 'Helena', 'Ida', 'Iga', 'Inga', 'Izabela',
'Jagoda', 'Janina', 'Joanna', 'Julia', 'Julianna', 'Julita', 'Justyna', 'Kaja', 'Kalina', 'Kamila', 'Karina', 'Karolina',
'Katarzyna', 'Kinga', 'Klara', 'Klaudia', 'Kornelia', 'Krystyna', 'Laura', 'Lena', 'Lidia', 'Liliana', 'Liwia', 'Łucja',
'Magdalena', 'Maja', 'Malwina', 'Małgorzata', 'Marcelina', 'Maria', 'Marianna', 'Marika', 'Marta', 'Martyna', 'Matylda',
'Melania', 'Michalina', 'Milena', 'Monika', 'Nadia', 'Natalia', 'Natasza', 'Nela', 'Nicole', 'Nikola', 'Nina',
'Olga', 'Oliwia', 'Patrycja', 'Paulina', 'Pola', 'Roksana', 'Rozalia', 'Róża', 'Sandra', 'Sara', 'Sonia', 'Sylwia',
'Tola', 'Urszula', 'Weronika', 'Wiktoria', 'Zofia', 'Zuzanna',
];
protected static $lastNameMale = [
'Adamczyk', 'Adamski', 'Andrzejewski', 'Baran', 'Baranowski', 'Bąk', 'Błaszczyk', 'Borkowski', 'Borowski', 'Brzeziński',
'Chmielewski', 'Cieślak', 'Czarnecki', 'Czerwiński', 'Dąbrowski', 'Duda', 'Dudek', 'Gajewski', 'Głowacki', 'Górski', 'Grabowski',
'Jabłoński', 'Jakubowski', 'Jankowski', 'Jasiński', 'Jaworski', 'Kaczmarczyk', 'Kaczmarek', 'Kalinowski', 'Kamiński', 'Kaźmierczak',
'Kołodziej', 'Konieczny', 'Kowalczyk', 'Kowalski', 'Kozłowski', 'Krajewski', 'Krawczyk', 'Król', 'Krupa', 'Kubiak', 'Kucharski', 'Kwiatkowski',
'Laskowski', 'Lewandowski', 'Lis', 'Maciejewski', 'Majewski', 'Makowski', 'Malinowski', 'Marciniak', 'Mazur', 'Mazurek', 'Michalak',
'Michalski', 'Mróz', 'Nowak', 'Nowakowski', 'Nowicki', 'Olszewski', 'Ostrowski', 'Pawlak', 'Pawłowski', 'Pietrzak', 'Piotrowski', 'Przybylski',
'Rutkowski', 'Sadowski', 'Sawicki', 'Sikora', 'Sikorski', 'Sobczak', 'Sokołowski', 'Stępień', 'Szczepański', 'Szewczyk', 'Szulc', 'Szymański', 'Szymczak',
'Tomaszewski', 'Urbański', 'Walczak', 'Wasilewski', 'Wieczorek', 'Wilk', 'Wiśniewski', 'Witkowski', 'Włodarczyk', 'Wojciechowski',
'Woźniak', 'Wójcik', 'Wróbel', 'Wróblewski', 'Wysocki', 'Zając', 'Zakrzewski', 'Zalewski', 'Zawadzki', 'Zieliński', 'Ziółkowski',
];
protected static $lastNameFemale = [
'Adamczyk', 'Adamska', 'Andrzejewska', 'Baran', 'Baranowska', 'Bąk', 'Błaszczyk', 'Borkowska', 'Borowska', 'Brzezińska',
'Chmielewska', 'Cieślak', 'Czarnecka', 'Czerwińska', 'Dąbrowska', 'Duda', 'Dudek', 'Gajewska', 'Głowacka', 'Górecka', 'Górska', 'Grabowska',
'Jabłońska', 'Jakubowska', 'Jankowska', 'Jasińska', 'Jaworska', 'Kaczmarczyk', 'Kaczmarek', 'Kalinowska', 'Kamińska', 'Kaźmierczak',
'Kołodziej', 'Kowalczyk', 'Kowalska', 'Kozłowska', 'Krajewska', 'Krawczyk', 'Król', 'Krupa', 'Kubiak', 'Kucharska', 'Kwiatkowska',
'Laskowska', 'Lewandowska', 'Lis', 'Maciejewska', 'Majewska', 'Makowska', 'Malinowska', 'Marciniak', 'Mazur', 'Mazurek', 'Michalak',
'Michalska', 'Mróz', 'Nowak', 'Nowakowska', 'Nowicka', 'Olszewska', 'Ostrowska', 'Pawlak', 'Pawłowska', 'Pietrzak', 'Piotrowska', 'Przybylska',
'Rutkowska', 'Sadowska', 'Sawicka', 'Sikora', 'Sikorska', 'Sobczak', 'Sokołowska', 'Stępień', 'Szczepańska', 'Szewczyk', 'Szulc', 'Szymańska', 'Szymczak',
'Tomaszewska', 'Urbańska', 'Walczak', 'Wasilewska', 'Wieczorek', 'Wilk', 'Wiśniewska', 'Witkowska', 'Włodarczyk', 'Wojciechowska',
'Woźniak', 'Wójcik', 'Wróbel', 'Wróblewska', 'Wysocka', 'Zając', 'Zakrzewska', 'Zalewska', 'Zawadzka', 'Zielińska', 'Ziółkowska',
];
/**
* Unisex academic degree
*
* @var string[]
*/
protected static $title = ['mgr', 'inż.', 'dr', 'doc.'];
/**
* @param string|null $gender 'male', 'female' or null for any
*
* @example 'Adamczyk'
*/
public function lastName($gender = null)
{
if ($gender === static::GENDER_MALE) {
return static::lastNameMale();
}
if ($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);
}
public function title($gender = null)
{
return static::randomElement(static::$title);
}
/**
* replaced by specific unisex Polish title
*/
public static function titleMale()
{
return static::randomElement(static::$title);
}
/**
* replaced by specific unisex Polish title
*/
public static function titleFemale()
{
return static::randomElement(static::$title);
}
/**
* PESEL - Universal Electronic System for Registration of the Population
*
* @see http://en.wikipedia.org/wiki/PESEL
*
* @param DateTime $birthdate
* @param string $sex M for male or F for female
*
* @return string 11 digit number, like 44051401358
*/
public static function pesel($birthdate = null, $sex = null)
{
if ($birthdate === null) {
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
}
$weights = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
$length = count($weights);
$fullYear = (int) $birthdate->format('Y');
$year = (int) $birthdate->format('y');
$month = $birthdate->format('m') + (((int) ($fullYear / 100) - 14) % 5) * 20;
$day = $birthdate->format('d');
$result = [(int) ($year / 10), $year % 10, (int) ($month / 10), $month % 10, (int) ($day / 10), $day % 10];
for ($i = 6; $i < $length; ++$i) {
$result[$i] = static::randomDigit();
}
$result[$length - 1] |= 1;
if ($sex == 'F') {
$result[$length - 1] -= 1;
}
$checksum = 0;
for ($i = 0; $i < $length; ++$i) {
$checksum += $weights[$i] * $result[$i];
}
$checksum = (10 - ($checksum % 10)) % 10;
$result[] = $checksum;
return implode('', $result);
}
/**
* National Identity Card number
*
* @see http://en.wikipedia.org/wiki/Polish_National_Identity_Card
*
* @return string 3 letters and 6 digits, like ABA300000
*/
public static function personalIdentityNumber()
{
$range = str_split('ABCDEFGHIJKLMNPRSTUVWXYZ');
$low = ['A', static::randomElement($range), static::randomElement($range)];
$high = [static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit(), static::randomDigit()];
$weights = [7, 3, 1, 7, 3, 1, 7, 3];
$checksum = 0;
for ($i = 0, $size = count($low); $i < $size; ++$i) {
$checksum += $weights[$i] * (ord($low[$i]) - 55);
}
for ($i = 0, $size = count($high); $i < $size; ++$i) {
$checksum += $weights[$i + 3] * $high[$i];
}
$checksum %= 10;
return implode('', $low) . $checksum . implode('', $high);
}
/**
* Taxpayer Identification Number (NIP in Polish)
*
* @see http://en.wikipedia.org/wiki/PESEL#Other_identifiers
* @see http://pl.wikipedia.org/wiki/NIP
*
* @return string 10 digit number
*/
public static function taxpayerIdentificationNumber()
{
$weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];
$result = [];
do {
$result = [
static::randomDigitNotNull(), static::randomDigitNotNull(), static::randomDigitNotNull(),
static::randomDigit(), static::randomDigit(), static::randomDigit(),
static::randomDigit(), static::randomDigit(), static::randomDigit(),
];
$checksum = 0;
for ($i = 0, $size = count($result); $i < $size; ++$i) {
$checksum += $weights[$i] * $result[$i];
}
$checksum %= 11;
} while ($checksum == 10);
$result[] = $checksum;
return implode('', $result);
}
}
Blog Section
Dive into our blog to explore the cutting-edge trends in digital payments and NFC technology. Stay updated on the innovations that are revolutionizing transactions, boosting security, and making payments quicker and more convenient. Learn how these advancements are shaping the future of financial interactions and driving the global transition towards a cashless world.
In recent years, contactless payments have surged in popularity, driven...
As digital transactions proliferate, ensuring robust payment security is more critical than ever. Two foundational...
Digital wallets have fundamentally transformed how we manage money, offering a streamlined, secure, and highly...