| 148 |
lars |
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 = [
|
|
|
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 = [
|
|
|
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 = [
|
|
|
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 |
* @see https://nl.wikipedia.org/wiki/Rijksregisternummer
|
|
|
83 |
*
|
|
|
84 |
* @param string|null $gender 'male', 'female' or null for any
|
|
|
85 |
*
|
|
|
86 |
* @return string
|
|
|
87 |
*/
|
|
|
88 |
public static function rrn($gender = null)
|
|
|
89 |
{
|
|
|
90 |
$middle = self::numberBetween(1, 997);
|
|
|
91 |
|
|
|
92 |
if ($gender === static::GENDER_MALE) {
|
|
|
93 |
$middle = $middle % 2 === 1 ? $middle : $middle + 1;
|
|
|
94 |
} elseif ($gender === static::GENDER_FEMALE) {
|
|
|
95 |
$middle = $middle % 2 === 0 ? $middle : $middle + 1;
|
|
|
96 |
}
|
|
|
97 |
$middle = sprintf('%03d', $middle);
|
|
|
98 |
|
|
|
99 |
$date = DateTime::dateTimeThisCentury();
|
|
|
100 |
$dob = sprintf('%06d', $date->format('ymd'));
|
|
|
101 |
$help = $date->format('Y') >= 2000 ? 2 : null;
|
|
|
102 |
|
|
|
103 |
$check = (int) ($help . $dob . $middle);
|
|
|
104 |
$rest = sprintf('%02d', 97 - ($check % 97));
|
|
|
105 |
|
|
|
106 |
return $dob . $middle . $rest;
|
|
|
107 |
}
|
|
|
108 |
}
|