Вход Регистрация
Файл: vendor/fakerphp/faker/src/Faker/Provider/pl_PL/LicensePlate.php
Строк: 189
<?php

namespace FakerProviderpl_PL;

use 
FakerProviderBase;

/**
 * Generator of Polish vehicle registration numbers.
 * {@link} http://prawo.sejm.gov.pl/isap.nsf/DocDetails.xsp?id=WDU20170002355
 * {@link} https://pl.wikipedia.org/wiki/Tablice_rejestracyjne_w_Polsce#Tablice_standardowe
 */
class LicensePlate extends Base
{
    
/**
     * @var array list of Polish voivodeships and respective vehicle registration number prefixes.
     */
    
protected static $voivodeships = [
        
'dolnośląskie' => 'D',
        
'kujawsko-pomorskie' => 'C',
        
'lubelskie' => 'L',
        
'lubuskie' => 'F',
        
'łódzkie' => 'E',
        
'małopolskie' => 'K',
        
'mazowieckie' => 'W',
        
'opolskie' => 'O',
        
'podkarpackie' => 'R',
        
'podlaskie' => 'B',
        
'pomorskie' => 'G',
        
'śląskie' => 'S',
        
'świętokrzyskie' => 'T',
        
'warmińsko-mazurskie' => 'N',
        
'wielkopolskie' => 'P',
        
'zachodniopomorskie' => 'Z',
    ];

    
/**
     * @var array list of special vehicle registration number prefixes.
     */
    
protected static $specials = [
        
'army' => 'U',
        
'services' => 'H',
    ];

    
/**
     * @var array list of Polish counties and respective vehicle registration number prefixes.
     */
    
protected static $counties = [
        
'D' => [
            
'Jelenia Góra' => ['J'],
            
'Legnica' => ['L'],
            
'Wałbrzych' => ['B'],
            
'Wrocław' => ['W''X'],
            
'bolesławiecki' => ['BL'],
            
'dzierżoniowski' => ['DZ'],
            
'głogowski' => ['GL'],
            
'górowski' => ['GR'],
            
'jaworski' => ['JA'],
            
'jeleniogórski' => ['JE'],
            
'kamiennogórski' => ['KA'],
            
'kłodzki' => ['KL'],
            
'legnicki' => ['LE'],
            
'lubański' => ['LB'],
            
'lubiński' => ['LU'],
            
'lwówecki' => ['LW'],
            
'milicki' => ['MI'],
            
'oleśnicki' => ['OL'],
            
'oławski' => ['OA'],
            
'polkowicki' => ['PL'],
            
'strzeliński' => ['ST'],
            
'średzki' => ['SR'],
            
'świdnicki' => ['SW'],
            
'trzebnicki' => ['TR'],
            
'wałbrzyski' => ['BA'],
            
'wołowski' => ['WL'],
            
'wrocławski' => ['WR'],
            
'ząbkowicki' => ['ZA'],
            
'zgorzelecki' => ['ZG'],
            
'złotoryjski' => ['ZL'],
        ],
        
'C' => [
            
'Bydgoszcz' => ['B'],
            
'Grudziądz' => ['G'],
            
'Toruń' => ['T'],
            
'Włocławek' => ['W'],
            
'aleksandrowski' => ['AL'],
            
'brodnicki' => ['BR'],
            
'bydgoski' => ['BY'],
            
'chełmiński' => ['CH'],
            
'golubsko-dobrzyński' => ['GD'],
            
'grudziądzki' => ['GR'],
            
'inowrocławski' => ['IN'],
            
'lipnowski' => ['LI'],
            
'mogileński' => ['MG'],
            
'nakielski' => ['NA'],
            
'radziejowski' => ['RA'],
            
'rypiński' => ['RY'],
            
'sępoleński' => ['SE'],
            
'świecki' => ['SW'],
            
'toruński' => ['TR'],
            
'tucholski' => ['TU'],
            
'wąbrzeski' => ['WA'],
            
'włocławski' => ['WL'],
            
'żniński' => ['ZN'],
        ],
        
'L' => [
            
'Biała Podlaska' => ['B'],
            
'Chełm' => ['C'],
            
'Lublin' => ['U'],
            
'Zamość' => ['Z'],
            
'bialski' => ['BI'],
            
'biłgorajski' => ['BL'],
            
'chełmski' => ['CH'],
            
'hrubieszowski' => ['HR'],
            
'janowski' => ['JA'],
            
'krasnostawski' => ['KS'],
            
'kraśnicki' => ['KR'],
            
'lubartowski' => ['LB'],
            
'lubelski' => ['UB'],
            
'łęczyński' => ['LE'],
            
'łukowski' => ['LU'],
            
'opolski' => ['OP'],
            
'parczewski' => ['PA'],
            
'puławski' => ['PU'],
            
'radzyński' => ['RA'],
            
'rycki' => ['RY'],
            
'świdnicki' => ['SW'],
            
'tomaszowski' => ['TM'],
            
'włodawski' => ['WL'],
            
'zamojski' => ['ZA'],
        ],
        
'F' => [
            
'Gorzów Wielkopolski' => ['G'],
            
'Zielona Góra' => ['Z'],
            
'gorzowski' => ['GW'],
            
'krośnieński' => ['KR'],
            
'międzyrzecki' => ['MI'],
            
'nowosolski' => ['NW'],
            
'słubicki' => ['SL'],
            
'strzelecko-drezdenecki' => ['SD'],
            
'sulęciński' => ['SU'],
            
'świebodziński' => ['SW'],
            
'wschowski' => ['WS'],
            
'zielonogórski' => ['ZI'],
            
'żagański' => ['ZG'],
            
'żarski' => ['ZA'],
        ],
        
'E' => [
            
'Łódź' => ['L'],
            
'Piotrków Trybunalski' => ['P'],
            
'Skierniewice' => ['S'],
            
'brzeziński' => ['BR'],
            
'bełchatowski' => ['BE'],
            
'kutnowski' => ['KU'],
            
'łaski' => ['LA'],
            
'łęczycki' => ['LE'],
            
'łowicki' => ['LC'],
            
'łódzki wschodni' => ['LW'],
            
'opoczyński' => ['OP'],
            
'pabianicki' => ['PA'],
            
'pajęczański' => ['PJ'],
            
'piotrkowski' => ['PI'],
            
'poddębicki' => ['PD'],
            
'radomszczański' => ['RA'],
            
'rawski' => ['RW'],
            
'sieradzki' => ['SI'],
            
'skierniewicki' => ['SK'],
            
'tomaszowski' => ['TM'],
            
'wieluński' => ['WI'],
            
'wieruszowski' => ['WE'],
            
'zduńskowolski' => ['ZD'],
            
'zgierski' => ['ZG'],
        ],
        
'K' => [
            
'Kraków' => ['R'],
            
'Nowy Sącz' => ['N'],
            
'Tarnów' => ['T'],
            
'bocheński' => ['BA''BC'],
            
'brzeski' => ['BR'],
            
'chrzanowski' => ['CH'],
            
'dąbrowski' => ['DA'],
            
'gorlicki' => ['GR'],
            
'krakowski' => ['RA'],
            
'limanowski' => ['LI'],
            
'miechowski' => ['MI'],
            
'myślenicki' => ['MY'],
            
'nowosądecki' => ['NS'],
            
'nowotarski' => ['NT'],
            
'olkuski' => ['OL'],
            
'oświęcimski' => ['OS'],
            
'proszowicki' => ['PR'],
            
'suski' => ['SU'],
            
'tarnowski' => ['TA'],
            
'tatrzański' => ['TT'],
            
'wadowicki' => ['WA'],
            
'wielicki' => ['WI'],
        ],
        
'W' => [
            
'Ostrołęka' => ['O'],
            
'Płock' => ['P'],
            
'Radom' => ['R'],
            
'Siedlce' => ['S'],
            
'białobrzeski' => ['BR'],
            
'ciechanowski' => ['CI'],
            
'garwoliński' => ['G'],
            
'gostyniński' => ['GS'],
            
'grodziski' => ['GM'],
            
'grójecki' => ['GR'],
            
'kozienicki' => ['KZ'],
            
'legionowski' => ['L'],
            
'lipski' => ['LI'],
            
'łosicki' => ['LS'],
            
'makowski' => ['MA'],
            
'miński' => ['M'],
            
'mławski' => ['ML'],
            
'nowodworski' => ['ND'],
            
'ostrołęcki' => ['OS'],
            
'ostrowski' => ['OR'],
            
'otwocki' => ['OT'],
            
'piaseczyński' => ['PA''PI'],
            
'płocki' => ['PL'],
            
'płoński' => ['PN'],
            
'pruszkowski' => ['PP''PR''PS'],
            
'przasnyski' => ['PZ'],
            
'przysuski' => ['PY'],
            
'pułtuski' => ['PU'],
            
'radomski' => ['RA'],
            
'siedlecki' => ['SI'],
            
'sierpecki' => ['SE'],
            
'sochaczewski' => ['SC'],
            
'sokołowski' => ['SK'],
            
'szydłowiecki' => ['SZ'],
            
'warszawski' => ['A''B''D''E''F''H''I''J''K''N''T''U''W''X''Y'],
            
'warszawski zachodni' => ['Z'],
            
'węgrowski' => ['WE'],
            
'wołomiński' => ['WL''V'],
            
'wyszkowski' => ['WY'],
            
'zwoleński' => ['ZW'],
            
'żuromiński' => ['ZU'],
            
'żyrardowski' => ['ZY'],
        ],
        
'O' => [
            
'Opole' => ['P'],
            
'brzeski' => ['B'],
            
'głubczycki' => ['GL'],
            
'kędzierzyńsko-kozielski' => ['K'],
            
'kluczborski' => ['KL'],
            
'krapkowicki' => ['KR'],
            
'namysłowski' => ['NA'],
            
'nyski' => ['NY'],
            
'oleski' => ['OL'],
            
'opolski' => ['PO'],
            
'prudnicki' => ['PR'],
            
'strzelecki' => ['ST'],
        ],
        
'R' => [
            
'Krosno' => ['K'],
            
'Przemyśl' => ['P'],
            
'Rzeszów' => ['Z'],
            
'Tarnobrzeg' => ['T'],
            
'bieszczadzki' => ['BI'],
            
'brzozowski' => ['BR'],
            
'dębicki' => ['DE'],
            
'jarosławski' => ['JA'],
            
'jasielski' => ['JS'],
            
'kolbuszowski' => ['KL'],
            
'krośnieński' => ['KR'],
            
'leski' => ['LS'],
            
'leżajski' => ['LE'],
            
'lubaczowski' => ['LU'],
            
'łańcucki' => ['LA'],
            
'mielecki' => ['MI'],
            
'niżański' => ['NI'],
            
'przemyski' => ['PR'],
            
'przeworski' => ['PZ'],
            
'ropczycko-sędziszowski' => ['RS'],
            
'rzeszowski' => ['ZE'],
            
'sanocki' => ['SA'],
            
'stalowowolski' => ['ST'],
            
'strzyżowski' => ['SR'],
            
'tarnobrzeski' => ['TA'],
        ],
        
'B' => [
            
'Białystok' => ['I'],
            
'Łomża' => ['L'],
            
'Suwałki' => ['S'],
            
'augustowski' => ['AU'],
            
'białostocki' => ['IA'],
            
'bielski' => ['BI'],
            
'grajewski' => ['GR'],
            
'hajnowski' => ['HA'],
            
'kolneński' => ['KL'],
            
'łomżyński' => ['LM'],
            
'moniecki' => ['MN'],
            
'sejneński' => ['SE'],
            
'siemiatycki' => ['SI'],
            
'sokólski' => ['SK'],
            
'suwalski' => ['SU'],
            
'wysokomazowiecki' => ['WM'],
            
'zambrowski' => ['ZA'],
        ],
        
'G' => [
            
'Gdańsk' => ['D'],
            
'Gdynia' => ['A'],
            
'Słupsk' => ['S'],
            
'Sopot' => ['SP'],
            
'bytowski' => ['BY'],
            
'chojnicki' => ['CH'],
            
'człuchowski' => ['CZ'],
            
'gdański' => ['DA'],
            
'kartuski' => ['KY''KA'],
            
'kościerski' => ['KS'],
            
'kwidzyński' => ['KW'],
            
'lęborski' => ['LE'],
            
'malborski' => ['MB'],
            
'nowodworski' => ['ND'],
            
'pucki' => ['PU'],
            
'słupski' => ['SL'],
            
'starogardzki' => ['ST'],
            
'sztumski' => ['SZ'],
            
'tczewski' => ['TC'],
            
'wejherowski' => ['WE''WO'],
        ],
        
'S' => [
            
'Bielsko-Biała' => ['B'],
            
'Bytom' => ['Y'],
            
'Chorzów' => ['H'],
            
'Częstochowa' => ['C'],
            
'Dąbrowa Górnicza' => ['D'],
            
'Gliwice' => ['G'],
            
'Jastrzębie-Zdrój' => ['JZ'],
            
'Jaworzno' => ['J'],
            
'Katowice' => ['K'],
            
'Mysłowice' => ['M'],
            
'Piekary Śląskie' => ['PI'],
            
'Ruda Śląska,' => ['L''RS'],
            
'Rybnik' => ['R'],
            
'Siemianowice Śląskie' => ['I'],
            
'Sosnowiec' => ['O'],
            
'Świętochłowice' => ['W'],
            
'Tychy' => ['T'],
            
'Zabrze' => ['Z'],
            
'Żory' => ['ZO'],
            
'będziński' => ['BE'],
            
'bielski' => ['BI'],
            
'cieszyński' => ['CN''CI'],
            
'częstochowski' => ['CZ'],
            
'gliwicki' => ['GL'],
            
'kłobucki' => ['KL'],
            
'lubliniecki' => ['LU'],
            
'mikołowski' => ['MI'],
            
'myszkowski' => ['MY'],
            
'pszczyński' => ['PS'],
            
'raciborski' => ['RC'],
            
'rybnicki' => ['RB'],
            
'tarnogórski' => ['TA'],
            
'bieruńsko - lędziński' => ['BL'],
            
'wodzisławski' => ['WD''WZ'],
            
'zawierciański' => ['ZA'],
            
'żywiecki' => ['ZY'],
        ],
        
'T' => [
            
'Kielce' => ['K'],
            
'buski' => ['BU'],
            
'jędrzejowski' => ['JE'],
            
'kazimierski' => ['KA'],
            
'kielecki' => ['KI'],
            
'konecki' => ['KN'],
            
'opatowski' => ['OP'],
            
'ostrowiecki' => ['OS'],
            
'pińczowski' => ['PI'],
            
'sandomierski' => ['SA'],
            
'skarżyski' => ['SK'],
            
'starachowicki' => ['ST'],
            
'staszowski' => ['SZ'],
            
'włoszczowski' => ['LW'],
        ],
        
'N' => [
            
'Elbląg' => ['E'],
            
'Olsztyn' => ['O'],
            
'bartoszycki' => ['BA'],
            
'braniewski' => ['BR'],
            
'działdowski' => ['DZ'],
            
'elbląski' => ['EB'],
            
'ełcki' => ['EL'],
            
'giżycki' => ['GI'],
            
'iławski' => ['IL'],
            
'kętrzyński' => ['KE'],
            
'lidzbarski' => ['LI'],
            
'mrągowski' => ['MR'],
            
'nidzicki' => ['NI'],
            
'nowomiejski' => ['NM'],
            
'olecki' => ['OE'],
            
'gołdapski' => ['GO'],
            
'olsztyński' => ['OL'],
            
'ostródzki' => ['OS'],
            
'piski' => ['PI'],
            
'szczycieński' => ['SZ'],
            
'węgorzewski' => ['WE'],
        ],
        
'P' => [
            
'Kalisz' => ['A''K'],
            
'Konin' => ['KO''N'],
            
'Leszno' => ['L'],
            
'Poznań' => ['O''Y'],
            
'chodzieski' => ['CH'],
            
'czarnkowsko-trzcianecki' => ['CT'],
            
'gnieźnieński' => ['GN'],
            
'gostyński' => ['GS'],
            
'grodziski' => ['GO'],
            
'jarociński' => ['JA'],
            
'kaliski' => ['KA'],
            
'kępiński' => ['KE'],
            
'kolski' => ['KL'],
            
'koniński' => ['KN'],
            
'kościański' => ['KS'],
            
'krotoszyński' => ['KR'],
            
'leszczyński' => ['LE'],
            
'międzychodzki' => ['MI'],
            
'nowotomyski' => ['NT'],
            
'obornicki' => ['OB'],
            
'ostrowski' => ['OS'],
            
'ostrzeszowski' => ['OT'],
            
'pilski' => ['P'],
            
'pleszewski' => ['PL'],
            
'poznański' => ['OZ''Z'],
            
'rawicki' => ['RA'],
            
'słupecki' => ['SL'],
            
'szamotulski' => ['SZ'],
            
'średzki' => ['SR'],
            
'śremski' => ['SE'],
            
'turecki' => ['TU'],
            
'wągrowiecki' => ['WA'],
            
'wolsztyński' => ['WL'],
            
'wrzesiński' => ['WR'],
            
'złotowski' => ['ZL'],
        ],
        
'Z' => [
            
'Koszalin' => ['K'],
            
'Szczecin' => ['S''Z'],
            
'Świnoujście' => ['SW'],
            
'białogardzki' => ['BI'],
            
'choszczeński' => ['CH'],
            
'drawski' => ['DR'],
            
'goleniowski' => ['GL'],
            
'gryficki' => ['GY'],
            
'gryfiński' => ['GR'],
            
'kamieński' => ['KA'],
            
'kołobrzeski' => ['KL'],
            
'koszaliński' => ['KO'],
            
'łobeski' => ['LO'],
            
'myśliborski' => ['MY'],
            
'policki' => ['PL'],
            
'pyrzycki' => ['PY'],
            
'sławieński' => ['SL'],
            
'stargardzki' => ['ST'],
            
'szczecinecki' => ['SZ'],
            
'świdwiński' => ['SD'],
            
'wałecki' => ['WA'],
        ],
        
'U' => [
            
'Siły Zbrojne Rzeczypospolitej Polskiej' => ['A''B''C''D''E''G''I''J''K''L'],
        ],
        
'H' => [
            
'Centralne Biuro Antykorupcyjne' => ['A'],
            
'Służba Ochrony Państwa' => ['BA''BB''BE''BF''BG'],
            
'Służba Celno-Skarbowa' => ['CA''CB''CC''CD''CE''CF''CG''CH''CJ''CK''CL''CM''CN''CO''CP''CR'],
            
'Agencja Bezpieczeństwa Wewnętrznego' => ['K'],
            
'Agencja Wywiadu' => ['K'],
            
'Służba Kontrwywiadu Wojskowego' => ['M'],
            
'Służba Wywiadu Wojskowego' => ['M'],
            
'Policja' => ['PA''PB''PC''PD''PE''PF''PG''PH''PJ''PK''PL''PL''PL''PL''PL''PM''PN''PP''PS''PT''PU''PW''PZ'],
            
'Straż Graniczna' => ['WA''WK'],
        ],
    ];

    
/**
     * @var array list of regex expressions matching Polish license plate suffixess when county code is 1 character long.
     */
    
protected static $plateSuffixesGroup1 = [
        
'd{5}',
        
'd{4}[A-PR-Z]',
        
'd{3}[A-PR-Z]{2}',
        
'[1-9][A-PR-Z]d{3}',
        
'[1-9][A-PR-Z]{2}d{2}',
    ];

    
/**
     * @var array list of regex expressions matching Polish license plate suffixess when county code is 2 characters long.
     */
    
protected static $plateSuffixesGroup2 = [
        
'[A-PR-Z]d{3}',
        
'd{2}[A-PR-Z]{2}',
        
'[1-9][A-PR-Z]d{2}',
        
'd{2}[A-PR-Z][1-9]',
        
'[1-9][A-PR-Z]{2}[1-9]',
        
'[A-PR-Z]{2}d{2}',
        
'd{5}',
        
'd{4}[A-PR-Z]',
        
'd{3}[A-PR-Z]{2}',
        
'[A-PR-Z]d{2}[A-PR-Z]',
        
'[A-PR-Z][1-9][A-PR-Z]{2}',
    ];

    
/**
     * Generates random license plate.
     *
     * @param bool       $special      whether special license plates should be included
     * @param array|null $voivodeships list of voivodeships license plate should be generated from
     * @param array|null $counties     list of counties license plate should be generated from
     */
    
public static function licensePlate(
        
bool $special false,
        ?array 
$voivodeships null,
        ?array 
$counties null
    
): string {
        
$voivodeshipsAvailable = static::$voivodeships + ($special ? static::$specials : []);
        
$voivodeshipCode = static::selectRandomArea($voivodeshipsAvailable$voivodeships);

        
$countiesAvailable = static::$counties[$voivodeshipCode];
        
$countySelected self::selectRandomArea($countiesAvailable$counties);

        
$countyCode = static::randomElement($countySelected);

        
$suffix = static::regexify(static::randomElement(strlen($countyCode) === ? static::$plateSuffixesGroup1 : static::$plateSuffixesGroup2));

        return 
"{$voivodeshipCode}{$countyCode} {$suffix}";
    }

    
/**
     * Selects random area from the list of available and requested.
     */
    
protected static function selectRandomArea(array $available, ?array $requested)
    {
        
$requested array_intersect(array_keys($available), $requested ?? []);

        if (empty(
$requested)) {
            
$requested array_keys($available);
        }

        return 
$available[static::randomElement($requested)];
    }
}
Онлайн: 1
Реклама