Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Faker\Provider\fr_FR;
4
 
5
use Faker\Calculator\Luhn;
6
 
7
class Company extends \Faker\Provider\Company
8
{
9
    /**
10
     * @var array French company name formats.
11
     */
12
    protected static $formats = [
13
        '{{lastName}} {{companySuffix}}',
14
        '{{lastName}} {{lastName}} {{companySuffix}}',
15
        '{{lastName}}',
16
        '{{lastName}}',
17
    ];
18
 
19
    /**
20
     * @var array French catch phrase formats.
21
     */
22
    protected static $catchPhraseFormats = [
23
        '{{catchPhraseNoun}} {{catchPhraseVerb}} {{catchPhraseAttribute}}',
24
    ];
25
 
26
    /**
27
     * @var array French nouns (used by the catch phrase format).
28
     */
29
    protected static $noun = [
30
        'la sécurité', 'le plaisir', 'le confort', 'la simplicité', "l'assurance", "l'art", 'le pouvoir', 'le droit',
31
        'la possibilité', "l'avantage", 'la liberté',
32
    ];
33
 
34
    /**
35
     * @var array French verbs (used by the catch phrase format).
36
     */
37
    protected static $verb = [
38
        'de rouler', "d'avancer", "d'évoluer", 'de changer', "d'innover", 'de louer', "d'atteindre vos buts",
39
        'de concrétiser vos projets',
40
    ];
41
 
42
    /**
43
     * @var array End of sentences (used by the catch phrase format).
44
     */
45
    protected static $attribute = [
46
        'de manière efficace', 'plus rapidement', 'plus facilement', 'plus simplement', 'en toute tranquilité',
47
        'avant-tout', 'autrement', 'naturellement', 'à la pointe', 'sans soucis', "à l'état pur",
48
        'à sa source', 'de manière sûre', 'en toute sécurité',
49
    ];
50
 
51
    /**
52
     * @var array Company suffixes.
53
     */
54
    protected static $companySuffix = ['SA', 'S.A.', 'SARL', 'S.A.R.L.', 'SAS', 'S.A.S.', 'et Fils'];
55
 
56
    protected static $siretNicFormats = ['####', '0###', '00#%'];
57
 
58
    /**
59
     * Returns a random catch phrase noun.
60
     *
61
     * @return string
62
     */
63
    public function catchPhraseNoun()
64
    {
65
        return static::randomElement(static::$noun);
66
    }
67
 
68
    /**
69
     * Returns a random catch phrase attribute.
70
     *
71
     * @return string
72
     */
73
    public function catchPhraseAttribute()
74
    {
75
        return static::randomElement(static::$attribute);
76
    }
77
 
78
    /**
79
     * Returns a random catch phrase verb.
80
     *
81
     * @return string
82
     */
83
    public function catchPhraseVerb()
84
    {
85
        return static::randomElement(static::$verb);
86
    }
87
 
88
    /**
89
     * Generates a french catch phrase.
90
     *
91
     * @return string
92
     */
93
    public function catchPhrase()
94
    {
95
        do {
96
            $format = static::randomElement(static::$catchPhraseFormats);
97
            $catchPhrase = ucfirst($this->generator->parse($format));
98
 
99
            if ($this->isCatchPhraseValid($catchPhrase)) {
100
                break;
101
            }
102
        } while (true);
103
 
104
        return $catchPhrase;
105
    }
106
 
107
    /**
108
     * Generates a siret number (14 digits) that passes the Luhn check.
109
     *
110
     * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d'identification_du_r%C3%A9pertoire_des_%C3%A9tablissements
111
     *
112
     * @return string
113
     */
114
    public function siret($formatted = true)
115
    {
116
        $siret = self::siren(false);
117
        $nicFormat = static::randomElement(static::$siretNicFormats);
118
        $siret .= $this->numerify($nicFormat);
119
        $siret .= Luhn::computeCheckDigit($siret);
120
 
121
        if ($formatted) {
122
            $siret = substr($siret, 0, 3) . ' ' . substr($siret, 3, 3) . ' ' . substr($siret, 6, 3) . ' ' . substr($siret, 9, 5);
123
        }
124
 
125
        return $siret;
126
    }
127
 
128
    /**
129
     * Generates a siren number (9 digits) that passes the Luhn check.
130
     *
131
     * @see http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27identification_du_r%C3%A9pertoire_des_entreprises
132
     *
133
     * @return string
134
     */
135
    public static function siren($formatted = true)
136
    {
137
        $siren = self::numerify('%#######');
138
        $siren .= Luhn::computeCheckDigit($siren);
139
 
140
        if ($formatted) {
141
            $siren = substr($siren, 0, 3) . ' ' . substr($siren, 3, 3) . ' ' . substr($siren, 6, 3);
142
        }
143
 
144
        return $siren;
145
    }
146
 
147
    /**
148
     * @var array An array containing string which should not appear twice in a catch phrase.
149
     */
150
    protected static $wordsWhichShouldNotAppearTwice = ['sécurité', 'simpl'];
151
 
152
    /**
153
     * Validates a french catch phrase.
154
     *
155
     * @param string $catchPhrase The catch phrase to validate.
156
     *
157
     * @return bool (true if valid, false otherwise)
158
     */
159
    protected static function isCatchPhraseValid($catchPhrase)
160
    {
161
        foreach (static::$wordsWhichShouldNotAppearTwice as $word) {
162
            // Fastest way to check if a piece of word does not appear twice.
163
            $beginPos = strpos($catchPhrase, $word);
164
            $endPos = strrpos($catchPhrase, $word);
165
 
166
            if ($beginPos !== false && $beginPos != $endPos) {
167
                return false;
168
            }
169
        }
170
 
171
        return true;
172
    }
173
 
174
    /**
175
     * @see http://www.pole-emploi.fr/candidat/le-code-rome-et-les-fiches-metiers-@/article.jspz?id=60702
176
     *
177
     * @note Randomly took 300 from this list
178
     */
179
    protected static $jobTitleFormat = [
180
        'Agent d\'accueil',
181
        'Agent d\'enquêtes',
182
        'Agent d\'entreposage',
183
        'Agent de curage',
184
        'Agro-économiste',
185
        'Aide couvreur',
186
        'Aide à domicile',
187
        'Aide-déménageur',
188
        'Ambassadeur',
189
        'Analyste télématique',
190
        'Animateur d\'écomusée',
191
        'Animateur web',
192
        'Appareilleur-gazier',
193
        'Archéologue',
194
        'Armurier d\'art',
195
        'Armurier spectacle',
196
        'Artificier spectacle',
197
        'Artiste dramatique',
198
        'Aspigiculteur',
199
        'Assistant de justice',
200
        'Assistant des ventes',
201
        'Assistant logistique',
202
        'Assistant styliste',
203
        'Assurance',
204
        'Auteur-adaptateur',
205
        'Billettiste voyages',
206
        'Brigadier',
207
        'Bruiteur',
208
        'Bâtonnier d\'art',
209
        'Bûcheron',
210
        'Cameraman',
211
        'Capitaine de pêche',
212
        'Carrier',
213
        'Caviste',
214
        'Chansonnier',
215
        'Chanteur',
216
        'Chargé de recherche',
217
        'Chasseur-bagagiste',
218
        'Chef de fabrication',
219
        'Chef de scierie',
220
        'Chef des ventes',
221
        'Chef du personnel',
222
        'Chef géographe',
223
        'Chef monteur son',
224
        'Chef porion',
225
        'Chiropraticien',
226
        'Choréologue',
227
        'Chromiste',
228
        'Cintrier-machiniste',
229
        'Clerc hors rang',
230
        'Coach sportif',
231
        'Coffreur béton armé',
232
        'Coffreur-ferrailleur',
233
        'Commandant de police',
234
        'Commandant marine',
235
        'Commis de coupe',
236
        'Comptable unique',
237
        'Conception et études',
238
        'Conducteur de jumbo',
239
        'Conseiller culinaire',
240
        'Conseiller funéraire',
241
        'Conseiller relooking',
242
        'Consultant ergonome',
243
        'Contrebassiste',
244
        'Convoyeur garde',
245
        'Copiste offset',
246
        'Corniste',
247
        'Costumier-habilleur',
248
        'Coutelier d\'art',
249
        'Cueilleur de cerises',
250
        'Céramiste concepteur',
251
        'Danse',
252
        'Danseur',
253
        'Data manager',
254
        'Dee-jay',
255
        'Designer produit',
256
        'Diététicien conseil',
257
        'Diététique',
258
        'Doreur sur métaux',
259
        'Décorateur-costumier',
260
        'Défloqueur d\'amiante',
261
        'Dégustateur',
262
        'Délégué vétérinaire',
263
        'Délégué à la tutelle',
264
        'Désamianteur',
265
        'Détective',
266
        'Développeur web',
267
        'Ecotoxicologue',
268
        'Elagueur-botteur',
269
        'Elagueur-grimpeur',
270
        'Elastiqueur',
271
        'Eleveur d\'insectes',
272
        'Eleveur de chats',
273
        'Eleveur de volailles',
274
        'Embouteilleur',
275
        'Employé d\'accueil',
276
        'Employé d\'étage',
277
        'Employé de snack-bar',
278
        'Endivier',
279
        'Endocrinologue',
280
        'Epithésiste',
281
        'Essayeur-retoucheur',
282
        'Etainier',
283
        'Etancheur',
284
        'Etancheur-bardeur',
285
        'Etiqueteur',
286
        'Expert back-office',
287
        'Exploitant de tennis',
288
        'Extraction',
289
        'Facteur',
290
        'Facteur de clavecins',
291
        'Facteur de secteur',
292
        'Fantaisiste',
293
        'Façadier-bardeur',
294
        'Façadier-ravaleur',
295
        'Feutier',
296
        'Finance',
297
        'Flaconneur',
298
        'Foreur pétrole',
299
        'Formateur d\'italien',
300
        'Fossoyeur',
301
        'Fraiseur',
302
        'Fraiseur mouliste',
303
        'Frigoriste maritime',
304
        'Fromager',
305
        'Galeriste',
306
        'Gardien de résidence',
307
        'Garçon de chenil',
308
        'Garçon de hall',
309
        'Gendarme mobile',
310
        'Guitariste',
311
        'Gynécologue',
312
        'Géodésien',
313
        'Géologue prospecteur',
314
        'Géomètre',
315
        'Géomètre du cadastre',
316
        'Gérant d\'hôtel',
317
        'Gérant de tutelle',
318
        'Gériatre',
319
        'Hydrothérapie',
320
        'Hématologue',
321
        'Hôte de caisse',
322
        'Ingénieur bâtiment',
323
        'Ingénieur du son',
324
        'Ingénieur géologue',
325
        'Ingénieur géomètre',
326
        'Ingénieur halieute',
327
        'Ingénieur logistique',
328
        'Instituteur',
329
        'Jointeur de placage',
330
        'Juge des enfants',
331
        'Juriste financier',
332
        'Kiwiculteur',
333
        'Lexicographe',
334
        'Liftier',
335
        'Litigeur transport',
336
        'Logistique',
337
        'Logopède',
338
        'Magicien',
339
        'Manager d\'artiste',
340
        'Mannequin détail',
341
        'Maquilleur spectacle',
342
        'Marbrier-poseur',
343
        'Marin grande pêche',
344
        'Matelassier',
345
        'Maçon',
346
        'Maçon-fumiste',
347
        'Maçonnerie',
348
        'Maître de ballet',
349
        'Maïeuticien',
350
        'Menuisier',
351
        'Miroitier',
352
        'Modéliste industriel',
353
        'Moellonneur',
354
        'Moniteur de sport',
355
        'Monteur audiovisuel',
356
        'Monteur de fermettes',
357
        'Monteur de palettes',
358
        'Monteur en siège',
359
        'Monteur prototypiste',
360
        'Monteur-frigoriste',
361
        'Monteur-truquiste',
362
        'Mouleur sable',
363
        'Mouliste drapeur',
364
        'Mécanicien-armurier',
365
        'Médecin du sport',
366
        'Médecin scolaire',
367
        'Médiateur judiciaire',
368
        'Médiathécaire',
369
        'Net surfeur surfeuse',
370
        'Oenologue',
371
        'Opérateur de plateau',
372
        'Opérateur du son',
373
        'Opérateur géomètre',
374
        'Opérateur piquage',
375
        'Opérateur vidéo',
376
        'Ouvrier d\'abattoir',
377
        'Ouvrier serriste',
378
        'Ouvrier sidérurgiste',
379
        'Palefrenier',
380
        'Paléontologue',
381
        'Pareur en abattoir',
382
        'Parfumeur',
383
        'Parqueteur',
384
        'Percepteur',
385
        'Photographe d\'art',
386
        'Pilote automobile',
387
        'Pilote de soutireuse',
388
        'Pilote fluvial',
389
        'Piqueur en ganterie',
390
        'Pisteur secouriste',
391
        'Pizzaïolo',
392
        'Plaquiste enduiseur',
393
        'Plasticien',
394
        'Plisseur',
395
        'Poissonnier-traiteur',
396
        'Pontonnier',
397
        'Porion',
398
        'Porteur de hottes',
399
        'Porteur de journaux',
400
        'Portier',
401
        'Poseur de granit',
402
        'Posticheur spectacle',
403
        'Potier',
404
        'Praticien dentaire',
405
        'Praticiens médicaux',
406
        'Premier clerc',
407
        'Preneur de son',
408
        'Primeuriste',
409
        'Professeur d\'italien',
410
        'Projeteur béton armé',
411
        'Promotion des ventes',
412
        'Présentateur radio',
413
        'Pyrotechnicien',
414
        'Pédicure pour bovin',
415
        'Pédologue',
416
        'Pédopsychiatre',
417
        'Quincaillier',
418
        'Radio chargeur',
419
        'Ramasseur d\'asperges',
420
        'Ramasseur d\'endives',
421
        'Ravaleur-ragréeur',
422
        'Recherche',
423
        'Recuiseur',
424
        'Relieur-doreur',
425
        'Responsable de salle',
426
        'Responsable télécoms',
427
        'Revenue Manager',
428
        'Rippeur spectacle',
429
        'Rogneur',
430
        'Récupérateur',
431
        'Rédacteur des débats',
432
        'Régleur funéraire',
433
        'Régleur sur tour',
434
        'Sapeur-pompier',
435
        'Scannériste',
436
        'Scripte télévision',
437
        'Sculpteur sur verre',
438
        'Scénariste',
439
        'Second de cuisine',
440
        'Secrétaire juridique',
441
        'Semencier',
442
        'Sertisseur',
443
        'Services funéraires',
444
        'Solier-moquettiste',
445
        'Sommelier',
446
        'Sophrologue',
447
        'Staffeur',
448
        'Story boarder',
449
        'Stratifieur',
450
        'Stucateur',
451
        'Styliste graphiste',
452
        'Surjeteur-raseur',
453
        'Séismologue',
454
        'Technicien agricole',
455
        'Technicien bovin',
456
        'Technicien géomètre',
457
        'Technicien plateau',
458
        'Technicien énergie',
459
        'Terminologue',
460
        'Testeur informatique',
461
        'Toiliste',
462
        'Topographe',
463
        'Toréro',
464
        'Traducteur d\'édition',
465
        'Traffic manager',
466
        'Trieur de métaux',
467
        'Turbinier',
468
        'Téléconseiller',
469
        'Tôlier-traceur',
470
        'Vendeur carreau',
471
        'Vendeur en lingerie',
472
        'Vendeur en meubles',
473
        'Vendeur en épicerie',
474
        'Verrier d\'art',
475
        'Verrier à la calotte',
476
        'Verrier à la main',
477
        'Verrier à main levée',
478
        'Vidéo-jockey',
479
        'Vitrier',
480
    ];
481
}