Address.php
5 years ago
Company.php
5 years ago
Internet.php
5 years ago
Payment.php
5 years ago
Person.php
5 years ago
PhoneNumber.php
5 years ago
Text.php
5 years ago
Person.php
107 lines
| 1 | <?php |
| 2 | |
| 3 | namespace Faker\Provider\nl_BE; |
| 4 | |
| 5 | use Faker\Provider\DateTime; |
| 6 | |
| 7 | class Person extends \Faker\Provider\Person |
| 8 | { |
| 9 | protected static $firstNameMale = array( |
| 10 | 'Aaron', 'Adam', 'Adrien', 'Alessio', 'Alexander', 'Alexandre', 'Alexis', |
| 11 | 'Antoine', 'Arne', 'Arthur', 'Axel', 'Ayoub', 'Baptiste', 'Benjamin', |
| 12 | 'Clément', 'Daan', 'David', 'Diego', 'Dylan', 'Elias', 'Emiel', 'Emile', |
| 13 | 'Enzo', 'Ethan', 'Ferre', 'Finn', 'Florian', 'Gabriel', 'Gilles', 'Guillaume', |
| 14 | 'Hamza', 'Hugo', 'Ilias', 'Janne', 'Jarne', 'Jasper', 'Jelle', 'Jonas', |
| 15 | 'Jules', 'Julien', 'Kato', 'Kobe', 'Lander', 'Lars', 'Leon', 'Liam', 'Linde', |
| 16 | 'Loïc', 'Louis', 'Lowie', 'Luca', 'Lucas', 'Lukas', 'Martin', 'Mathéo', |
| 17 | 'Mathias', 'Mathis', 'Mathys', 'Mats', 'Matteo', 'Mauro', 'Maxim', 'Maxime', |
| 18 | 'Mehdi', 'Milan', 'Mohamed', 'Mohammed', 'Nathan', 'Nicolas', 'Niels', |
| 19 | 'Noah', 'Noé', 'Nolan', 'Nore', 'Quinten', 'Raphaël', 'Rayan', 'Robbe', |
| 20 | 'Robin', 'Romain', 'Ruben', 'Rune', 'Sacha', 'Sam', 'Samuel', 'Sander', |
| 21 | 'Seppe', 'Simon', 'Stan', 'Théo', 'Thomas', 'Tibo', 'Tom', 'Tristan', 'Tuur', |
| 22 | 'Vic', 'Victor', 'Vince', 'Warre', 'Xander', 'Yanis' |
| 23 | ); |
| 24 | |
| 25 | protected static $firstNameFemale = array( |
| 26 | 'Alexia', 'Alice', 'Alicia', 'Alyssa', 'Amber', 'Amélie', 'Amy', 'Anaïs', |
| 27 | 'Anna', 'Anouk', 'Axelle', 'Aya', 'Bo', 'Camille', 'Célia', 'Charlotte', |
| 28 | 'Chiara', 'Chloé', 'Clara', 'Clémence', 'Elena', 'Elias', 'Eline', 'Elisa', |
| 29 | 'Elise', 'Ella', 'Eloïse', 'Emilie', 'Emma', 'Estelle', 'Eva', 'Febe', |
| 30 | 'Femke', 'Fien', 'Fleur', 'Giulia', 'Hajar', 'Hanne', 'Helena', 'Ines', |
| 31 | 'Inès', 'Jade', 'Jana', 'Jeanne', 'Julia', 'Julie', 'Juliette', 'Kaat', |
| 32 | 'Lana', 'Lara', 'Laura', 'Laure', 'Léa', 'Lena', 'Lien', 'Lilou', 'Lily', |
| 33 | 'Lina', 'Lisa', 'Lise', 'Lola', 'Lore', 'Lotte', 'Louise', 'Luna', 'Maëlle', |
| 34 | 'Malak', 'Manon', 'Margaux', 'Margot', 'Marie', 'Marion', 'Maya', 'Merel', |
| 35 | 'Mila', 'Nina', 'Noa', 'Noémie', 'Noor', 'Nora', 'Océane', 'Olivia', 'Pauline', |
| 36 | 'Rania', 'Robin', 'Romane', 'Roos', 'Salma', 'Sara', 'Sarah', 'Senne', |
| 37 | 'Siebe', 'Sofia','Tess', 'Victoria', 'Wout', 'Yana', 'Yasmine', 'Zoé', 'Zoë' |
| 38 | ); |
| 39 | |
| 40 | protected static $lastName = array( |
| 41 | 'Adam', 'Aerts', 'Amrani', 'André', 'Antoine', 'Baert', 'Bah', 'Barry', |
| 42 | 'Bastin', 'Bauwens', 'Benali', 'Bernard', 'Bertrand', 'Bodart', 'Bogaert', |
| 43 | 'Bogaerts', 'Borremans', 'Bosmans', 'Boulanger', 'Bourgeois', 'Brasseur', |
| 44 | 'Carlier', 'Celik', 'Ceulemans', 'Charlier', 'Christiaens', 'Claes', |
| 45 | 'Claessens', 'Claeys', 'Collard', 'Collignon', 'Collin', 'Cools', 'Coppens', |
| 46 | 'Cornelis', 'Cornet', 'Cuvelier', 'Daems', 'De Backer', 'De Clercq', 'De Cock', |
| 47 | 'De Coninck', 'De Coster', 'De Greef', 'De Groote', 'De Meyer', 'De Pauw', |
| 48 | 'De Ridder', 'De Smedt', 'De Smet', 'De Vos', 'De Wilde', 'De Winter', |
| 49 | 'Declercq', 'Delfosse', 'Delhaye', 'Delvaux', 'Demir', 'Denis', 'Deprez', |
| 50 | 'Descamps', 'Desmedt', 'Desmet', 'Dethier', 'Devos', 'Diallo', 'Dierckx', |
| 51 | 'Dogan', 'Dubois', 'Dumont', 'Dupont', 'El Amrani', 'Etienne', 'Evrard', |
| 52 | 'Fontaine', 'François', 'Geerts', 'Georges', 'Gérard', 'Gielen', 'Gilles', |
| 53 | 'Gillet', 'Gilson', 'Goethals', 'Goffin', 'Goossens', 'Grégoire', 'Guillaume', |
| 54 | 'Hajji', 'Hardy', 'Hendrickx', 'Henry', 'Herman', 'Hermans', 'Heylen', |
| 55 | 'Heymans', 'Hubert', 'Jacob', 'Jacobs', 'Jacques', 'Jacquet', 'Jansen', |
| 56 | 'Janssen', 'Janssens', 'Kaya', 'Lacroix', 'Lambert', 'Lambrechts', 'Laurent', |
| 57 | 'Lauwers', 'Lebrun', 'Leclercq', 'Lecocq', 'Lecomte', 'Lefebvre', 'Lefèvre', |
| 58 | 'Legrand', 'Lejeune', 'Lemaire', 'Lemmens', 'Lenaerts', 'Léonard', 'Leroy', |
| 59 | 'Libert', 'Lievens', 'Louis', 'Luyten', 'Maes', 'Mahieu', 'Marchal', 'Maréchal', |
| 60 | 'Martens', 'Martin', 'Massart', 'Masson', 'Mathieu', 'Meert', 'Mertens', |
| 61 | 'Messaoudi', 'Meunier', 'Michaux', 'Michel', 'Michiels', 'Moens', 'Moreau', |
| 62 | 'Nguyen', 'Nicolas', 'Nijs', 'Noël', 'Parmentier', 'Pauwels', 'Peeters', |
| 63 | 'Petit', 'Pierre', 'Pieters', 'Piette', 'Piron', 'Pirotte', 'Poncelet', |
| 64 | 'Raes', 'Remy', 'Renard', 'Robert', 'Roels', 'Roland', 'Rousseau', 'Sahin', |
| 65 | 'Saidi', 'Schmitz', 'Segers', 'Servais', 'Simon', 'Simons', 'Smet', 'Smets', |
| 66 | 'Somers', 'Stevens', 'Thijs', 'Thiry', 'Thomas', 'Thys', 'Timmermans', |
| 67 | 'Toussaint', 'Tran', 'Urbain', 'Van Acker', 'Van Damme', 'Van de Velde', |
| 68 | 'Van den Bossche', 'Van den Broeck', 'Van Dyck', 'Van Hecke', 'Van Hoof', |
| 69 | 'Vandamme', 'Vandenberghe', 'Verbeeck', 'Verbeke', 'Verbruggen', 'Vercammen', |
| 70 | 'Verhaegen', 'Verhaeghe', 'Verhelst', 'Verheyen', 'Verhoeven', 'Verlinden', |
| 71 | 'Vermeersch', 'Vermeiren', 'Vermeulen', 'Verschueren', 'Verstraete', 'Verstraeten', |
| 72 | 'Vervoort', 'Wauters', 'Willems', 'Wouters', 'Wuyts', 'Yildirim', 'Yilmaz' |
| 73 | ); |
| 74 | |
| 75 | /** |
| 76 | * Belgian Rijksregister numbers are used to identify each citizen, |
| 77 | * it consists of three parts, the person's day of birth, in the |
| 78 | * format 'ymd', followed by a number between 1 and 997, odd for |
| 79 | * males, even for females. The last part is used to check if it's |
| 80 | * a valid number. |
| 81 | * |
| 82 | * @link https://nl.wikipedia.org/wiki/Rijksregisternummer |
| 83 | * |
| 84 | * @param string|null $gender 'male', 'female' or null for any |
| 85 | * @return string |
| 86 | */ |
| 87 | public static function rrn($gender = null) |
| 88 | { |
| 89 | $middle = self::numberBetween(1, 997); |
| 90 | if ($gender === static::GENDER_MALE) { |
| 91 | $middle = $middle %2 === 1 ? $middle : $middle+1; |
| 92 | } elseif ($gender === static::GENDER_FEMALE) { |
| 93 | $middle = $middle %2 === 0 ? $middle : $middle+1; |
| 94 | } |
| 95 | $middle = sprintf('%03d', $middle); |
| 96 | |
| 97 | $date = DateTime::dateTimeThisCentury(); |
| 98 | $dob = sprintf('%06d', $date->format('ymd')); |
| 99 | $help = $date->format('Y') >= 2000 ? 2 : null; |
| 100 | |
| 101 | $check = intval($help.$dob.$middle); |
| 102 | $rest = sprintf('%02d', 97 - ($check % 97)); |
| 103 | |
| 104 | return $dob.$middle.$rest; |
| 105 | } |
| 106 | } |
| 107 |