*/ use BaseEnum; case afghanistan = 1; case alandIslands = 2; case albania = 3; case algeria = 4; case americanSamoa = 5; case andorra = 6; case angola = 7; case anguilla = 8; case antarctica = 9; case antiguaAndBarbuda = 10; case argentina = 11; case armenia = 12; case aruba = 13; case australia = 14; case austria = 15; case azerbaijan = 16; case bahrain = 17; case bahamas = 18; case bangladesh = 19; case barbados = 20; case belarus = 21; case belgium = 22; case belize = 23; case benin = 24; case bermuda = 25; case bhutan = 26; case boliviaPlurinationalStateOf = 27; case bonaireSintEustatiusAndSaba = 28; case bosniaAndHerzegovina = 29; case botswana = 30; case bouvetIsland = 31; case brazil = 32; case britishIndianOceanTerritory = 33; case bruneiDarussalam = 34; case bulgaria = 35; case burkinaFaso = 36; case burundi = 37; case cambodia = 38; case cameroon = 39; case canada = 40; case capeVerde = 41; case caymanIslands = 42; case centralAfricanRepublic = 43; case chad = 44; case chile = 45; case china = 46; case christmasIsland = 47; case cocosKeelingIslands = 48; case colombia = 49; case comoros = 50; case congo = 51; case congoTheDemocraticRepublicOfThe = 52; case cookIslands = 53; case costaRica = 54; case coteDivoire = 55; case croatia = 56; case cuba = 57; case curacao = 58; case cyprus = 59; case czechRepublic = 60; case denmark = 61; case djibouti = 62; case dominica = 63; case dominicanRepublic = 64; case ecuador = 65; case egypt = 66; case elSalvador = 67; case equatorialGuinea = 68; case eritrea = 69; case estonia = 70; case ethiopia = 71; case falklandIslandsMalvinas = 72; case faroeIslands = 73; case fiji = 74; case finland = 75; case france = 76; case frenchGuiana = 77; case frenchPolynesia = 78; case frenchSouthernTerritories = 79; case gabon = 80; case gambia = 81; case georgia = 82; case germany = 83; case ghana = 84; case gibraltar = 85; case greece = 86; case greenland = 87; case grenada = 88; case guadeloupe = 89; case guam = 90; case guatemala = 91; case guernsey = 92; case guinea = 93; case guineaBissau = 94; case guyana = 95; case haiti = 96; case heardIslandAndMcdonaldIslands = 97; case holySeeVaticanCityState = 98; case honduras = 99; case hongKong = 100; case hungary = 101; case iceland = 102; case india = 103; case indonesia = 104; case iranIslamicRepublicOf = 105; case iraq = 106; case ireland = 107; case isleOfMan = 108; case israel = 109; case italy = 110; case jamaica = 111; case japan = 112; case jersey = 113; case jordan = 114; case kazakhstan = 115; case kenya = 116; case kiribati = 117; case koreaDemocraticPeoplesRepublicOf = 118; case koreaRepublicOf = 119; case kuwait = 120; case kyrgyzstan = 121; case laoPeoplesDemocraticRepublic = 122; case latvia = 123; case lebanon = 124; case lesotho = 125; case liberia = 126; case libya = 127; case liechtenstein = 128; case lithuania = 129; case luxembourg = 130; case macao = 131; case macedoniaTheFormerYugoslavRepublicOf = 132; case madagascar = 133; case malawi = 134; case malaysia = 135; case maldives = 136; case mali = 137; case malta = 138; case marshallIslands = 139; case martinique = 140; case mauritania = 141; case mauritius = 142; case mayotte = 143; case mexico = 144; case micronesiaFederatedStatesOf = 145; case moldovaRepublicOf = 146; case monaco = 147; case mongolia = 148; case montenegro = 149; case montserrat = 150; case morocco = 151; case mozambique = 152; case myanmar = 153; case namibia = 154; case nauru = 155; case nepal = 156; case netherlands = 157; case newCaledonia = 158; case newZealand = 159; case nicaragua = 160; case niger = 161; case nigeria = 162; case niue = 163; case norfolkIsland = 164; case northernMarianaIslands = 165; case norway = 166; case oman = 167; case pakistan = 168; case palau = 169; case palestineStateOf = 170; case panama = 171; case papuaNewGuinea = 172; case paraguay = 173; case peru = 174; case philippines = 175; case pitcairn = 176; case poland = 177; case portugal = 178; case puertoRico = 179; case qatar = 180; case reunion = 181; case romania = 182; case russianFederation = 183; case rwanda = 184; case saintBarthelemy = 185; case saintHelenaAscensionAndTristanDaCunha = 186; case saintKittsAndNevis = 187; case saintLucia = 188; case saintMartinFrenchPart = 189; case saintPierreAndMiquelon = 190; case saintVincentAndTheGrenadines = 191; case samoa = 192; case sanMarino = 193; case saoTomeAndPrincipe = 194; case saudiArabia = 195; case senegal = 196; case serbia = 197; case seychelles = 198; case sierraLeone = 199; case singapore = 200; case sintMaartenDutchPart = 201; case slovakia = 202; case slovenia = 203; case solomonIslands = 204; case somalia = 205; case southAfrica = 206; case southGeorgiaAndTheSouthSandwichIslands = 207; case southSudan = 208; case spain = 209; case sriLanka = 210; case sudan = 211; case suriname = 212; case svalbardAndJanMayen = 213; case swaziland = 214; case sweden = 215; case switzerland = 216; case syrianArabRepublic = 217; case taiwanProvinceOfChina = 218; case tajikistan = 219; case tanzaniaUnitedRepublicOf = 220; case thailand = 221; case timorLeste = 222; case togo = 223; case tokelau = 224; case tonga = 225; case trinidadAndTobago = 226; case tunisia = 227; case turkey = 228; case turkmenistan = 229; case turksAndCaicosIslands = 230; case tuvalu = 231; case uganda = 232; case ukraine = 233; case unitedArabEmirates = 234; case unitedKingdom = 235; case unitedStates = 236; case unitedStatesMinorOutlyingIslands = 237; case uruguay = 238; case uzbekistan = 239; case vanuatu = 240; case venezuelaBolivarianRepublicOf = 241; case vietNam = 242; case virginIslandsBritish = 243; case virginIslandsUs = 244; case wallisAndFutuna = 245; case westernSahara = 246; case yemen = 247; case zambia = 248; case zimbabwe = 249; /** * Optionnal labels definition * * @phpstan-ignore-next-line */ private const LABELS = [ self::afghanistan->name => 'Afghanistan', self::alandIslands->name => 'Åland Islands', self::albania->name => 'Albania', self::algeria->name => 'Algeria', self::americanSamoa->name => 'American Samoa', self::andorra->name => 'Andorra', self::angola->name => 'Angola', self::anguilla->name => 'Anguilla', self::antarctica->name => 'Antarctica', self::antiguaAndBarbuda->name => 'Antigua and Barbuda', self::argentina->name => 'Argentina', self::armenia->name => 'Armenia', self::aruba->name => 'Aruba', self::australia->name => 'Australia', self::austria->name => 'Austria', self::azerbaijan->name => 'Azerbaijan', self::bahrain->name => 'Bahrain', self::bahamas->name => 'Bahamas', self::bangladesh->name => 'Bangladesh', self::barbados->name => 'Barbados', self::belarus->name => 'Belarus', self::belgium->name => 'Belgium', self::belize->name => 'Belize', self::benin->name => 'Benin', self::bermuda->name => 'Bermuda', self::bhutan->name => 'Bhutan', self::boliviaPlurinationalStateOf->name => 'Bolivia, Plurinational State of', self::bonaireSintEustatiusAndSaba->name => 'Bonaire, Sint Eustatius and Saba', self::bosniaAndHerzegovina->name => 'Bosnia and Herzegovina', self::botswana->name => 'Botswana', self::bouvetIsland->name => 'Bouvet Island', self::brazil->name => 'Brazil', self::britishIndianOceanTerritory->name => 'British Indian Ocean Territory', self::bruneiDarussalam->name => 'Brunei Darussalam', self::bulgaria->name => 'Bulgaria', self::burkinaFaso->name => 'Burkina Faso', self::burundi->name => 'Burundi', self::cambodia->name => 'Cambodia', self::cameroon->name => 'Cameroon', self::canada->name => 'Canada', self::capeVerde->name => 'Cape Verde', self::caymanIslands->name => 'Cayman Islands', self::centralAfricanRepublic->name => 'Central African Republic', self::chad->name => 'Chad', self::chile->name => 'Chile', self::china->name => 'China', self::christmasIsland->name => 'Christmas Island', self::cocosKeelingIslands->name => 'Cocos (Keeling) Islands', self::colombia->name => 'Colombia', self::comoros->name => 'Comoros', self::congo->name => 'Congo', self::congoTheDemocraticRepublicOfThe->name => 'Congo, the Democratic Republic of the', self::cookIslands->name => 'Cook Islands', self::costaRica->name => 'Costa Rica', self::coteDivoire->name => 'Côte d\'Ivoire', self::croatia->name => 'Croatia', self::cuba->name => 'Cuba', self::curacao->name => 'Curaçao', self::cyprus->name => 'Cyprus', self::czechRepublic->name => 'Czech Republic', self::denmark->name => 'Denmark', self::djibouti->name => 'Djibouti', self::dominica->name => 'Dominica', self::dominicanRepublic->name => 'Dominican Republic', self::ecuador->name => 'Ecuador', self::egypt->name => 'Egypt', self::elSalvador->name => 'El Salvador', self::equatorialGuinea->name => 'Equatorial Guinea', self::eritrea->name => 'Eritrea', self::estonia->name => 'Estonia', self::ethiopia->name => 'Ethiopia', self::falklandIslandsMalvinas->name => 'Falkland Islands (Malvinas)', self::faroeIslands->name => 'Faroe Islands', self::fiji->name => 'Fiji', self::finland->name => 'Finland', self::france->name => 'France', self::frenchGuiana->name => 'French Guiana', self::frenchPolynesia->name => 'French Polynesia', self::frenchSouthernTerritories->name => 'French Southern Territories', self::gabon->name => 'Gabon', self::gambia->name => 'Gambia', self::georgia->name => 'Georgia', self::germany->name => 'Germany', self::ghana->name => 'Ghana', self::gibraltar->name => 'Gibraltar', self::greece->name => 'Greece', self::greenland->name => 'Greenland', self::grenada->name => 'Grenada', self::guadeloupe->name => 'Guadeloupe', self::guam->name => 'Guam', self::guatemala->name => 'Guatemala', self::guernsey->name => 'Guernsey', self::guinea->name => 'Guinea', self::guineaBissau->name => 'GuineaBissau', self::guyana->name => 'Guyana', self::haiti->name => 'Haiti', self::heardIslandAndMcdonaldIslands->name => 'Heard Island and McDonald Islands', self::holySeeVaticanCityState->name => 'Holy See (Vatican City State)', self::honduras->name => 'Honduras', self::hongKong->name => 'Hong Kong', self::hungary->name => 'Hungary', self::iceland->name => 'Iceland', self::india->name => 'India', self::indonesia->name => 'Indonesia', self::iranIslamicRepublicOf->name => 'Iran, Islamic Republic of', self::iraq->name => 'Iraq', self::ireland->name => 'Ireland', self::isleOfMan->name => 'Isle of Man', self::israel->name => 'Israel', self::italy->name => 'Italy', self::jamaica->name => 'Jamaica', self::japan->name => 'Japan', self::jersey->name => 'Jersey', self::jordan->name => 'Jordan', self::kazakhstan->name => 'Kazakhstan', self::kenya->name => 'Kenya', self::kiribati->name => 'Kiribati', self::koreaDemocraticPeoplesRepublicOf->name => 'Korea, Democratic People\'s Republic of', self::koreaRepublicOf->name => 'Korea, Republic of', self::kuwait->name => 'Kuwait', self::kyrgyzstan->name => 'Kyrgyzstan', self::laoPeoplesDemocraticRepublic->name => 'Lao People\'s Democratic Republic', self::latvia->name => 'Latvia', self::lebanon->name => 'Lebanon', self::lesotho->name => 'Lesotho', self::liberia->name => 'Liberia', self::libya->name => 'Libya', self::liechtenstein->name => 'Liechtenstein', self::lithuania->name => 'Lithuania', self::luxembourg->name => 'Luxembourg', self::macao->name => 'Macao', self::macedoniaTheFormerYugoslavRepublicOf->name => 'Macedonia, the Former Yugoslav Republic of', self::madagascar->name => 'Madagascar', self::malawi->name => 'Malawi', self::malaysia->name => 'Malaysia', self::maldives->name => 'Maldives', self::mali->name => 'Mali', self::malta->name => 'Malta', self::marshallIslands->name => 'Marshall Islands', self::martinique->name => 'Martinique', self::mauritania->name => 'Mauritania', self::mauritius->name => 'Mauritius', self::mayotte->name => 'Mayotte', self::mexico->name => 'Mexico', self::micronesiaFederatedStatesOf->name => 'Micronesia, Federated States of', self::moldovaRepublicOf->name => 'Moldova, Republic of', self::monaco->name => 'Monaco', self::mongolia->name => 'Mongolia', self::montenegro->name => 'Montenegro', self::montserrat->name => 'Montserrat', self::morocco->name => 'Morocco', self::mozambique->name => 'Mozambique', self::myanmar->name => 'Myanmar', self::namibia->name => 'Namibia', self::nauru->name => 'Nauru', self::nepal->name => 'Nepal', self::netherlands->name => 'Netherlands', self::newCaledonia->name => 'New Caledonia', self::newZealand->name => 'New Zealand', self::nicaragua->name => 'Nicaragua', self::niger->name => 'Niger', self::nigeria->name => 'Nigeria', self::niue->name => 'Niue', self::norfolkIsland->name => 'Norfolk Island', self::northernMarianaIslands->name => 'Northern Mariana Islands', self::norway->name => 'Norway', self::oman->name => 'Oman', self::pakistan->name => 'Pakistan', self::palau->name => 'Palau', self::palestineStateOf->name => 'Palestine, State of', self::panama->name => 'Panama', self::papuaNewGuinea->name => 'Papua New Guinea', self::paraguay->name => 'Paraguay', self::peru->name => 'Peru', self::philippines->name => 'Philippines', self::pitcairn->name => 'Pitcairn', self::poland->name => 'Poland', self::portugal->name => 'Portugal', self::puertoRico->name => 'Puerto Rico', self::qatar->name => 'Qatar', self::reunion->name => 'Réunion', self::romania->name => 'Romania', self::russianFederation->name => 'Russian Federation', self::rwanda->name => 'Rwanda', self::saintBarthelemy->name => 'Saint Barthélemy', self::saintHelenaAscensionAndTristanDaCunha->name => 'Saint Helena, Ascension and Tristan da Cunha', self::saintKittsAndNevis->name => 'Saint Kitts and Nevis', self::saintLucia->name => 'Saint Lucia', self::saintMartinFrenchPart->name => 'Saint Martin (French part)', self::saintPierreAndMiquelon->name => 'Saint Pierre and Miquelon', self::saintVincentAndTheGrenadines->name => 'Saint Vincent and the Grenadines', self::samoa->name => 'Samoa', self::sanMarino->name => 'San Marino', self::saoTomeAndPrincipe->name => 'Sao Tome and Principe', self::saudiArabia->name => 'Saudi Arabia', self::senegal->name => 'Senegal', self::serbia->name => 'Serbia', self::seychelles->name => 'Seychelles', self::sierraLeone->name => 'Sierra Leone', self::singapore->name => 'Singapore', self::sintMaartenDutchPart->name => 'Sint Maarten (Dutch part)', self::slovakia->name => 'Slovakia', self::slovenia->name => 'Slovenia', self::solomonIslands->name => 'Solomon Islands', self::somalia->name => 'Somalia', self::southAfrica->name => 'South Africa', self::southGeorgiaAndTheSouthSandwichIslands->name => 'South Georgia and the South Sandwich Islands', self::southSudan->name => 'South Sudan', self::spain->name => 'Spain', self::sriLanka->name => 'Sri Lanka', self::sudan->name => 'Sudan', self::suriname->name => 'Suriname', self::svalbardAndJanMayen->name => 'Svalbard and Jan Mayen', self::swaziland->name => 'Swaziland', self::sweden->name => 'Sweden', self::switzerland->name => 'Switzerland', self::syrianArabRepublic->name => 'Syrian Arab Republic', self::taiwanProvinceOfChina->name => 'Taiwan, Province of China', self::tajikistan->name => 'Tajikistan', self::tanzaniaUnitedRepublicOf->name => 'Tanzania, United Republic of', self::thailand->name => 'Thailand', self::timorLeste->name => 'TimorLeste', self::togo->name => 'Togo', self::tokelau->name => 'Tokelau', self::tonga->name => 'Tonga', self::trinidadAndTobago->name => 'Trinidad and Tobago', self::tunisia->name => 'Tunisia', self::turkey->name => 'Turkey', self::turkmenistan->name => 'Turkmenistan', self::turksAndCaicosIslands->name => 'Turks and Caicos Islands', self::tuvalu->name => 'Tuvalu', self::uganda->name => 'Uganda', self::ukraine->name => 'Ukraine', self::unitedArabEmirates->name => 'United Arab Emirates', self::unitedKingdom->name => 'United Kingdom', self::unitedStates->name => 'United States', self::unitedStatesMinorOutlyingIslands->name => 'United States Minor Outlying Islands', self::uruguay->name => 'Uruguay', self::uzbekistan->name => 'Uzbekistan', self::vanuatu->name => 'Vanuatu', self::venezuelaBolivarianRepublicOf->name => 'Venezuela, Bolivarian Republic of', self::vietNam->name => 'Viet Nam', self::virginIslandsBritish->name => 'Virgin Islands, British', self::virginIslandsUs->name => 'Virgin Islands, U.S.', self::wallisAndFutuna->name => 'Wallis and Futuna', self::westernSahara->name => 'Western Sahara', self::yemen->name => 'Yemen', self::zambia->name => 'Zambia', self::zimbabwe->name => 'Zimbabwe', ]; /** * Custom added ISOCODES definition */ private const ISOCODES = [ self::france->name => 'FR', self::guadeloupe->name => 'GP', self::martinique->name => 'MQ', self::frenchGuiana->name => 'GF', self::reunion->name => 'RE', self::saintPierreAndMiquelon->name => 'PM', self::mayotte->name => 'YT', self::saintBarthelemy->name => 'BL', self::saintMartinFrenchPart->name => 'MF', self::wallisAndFutuna->name => 'WF', self::frenchPolynesia->name => 'PF', self::newCaledonia->name => 'NC', ]; /** * Custom added Numerical ISOCODES definition */ private const ISOCODES_NUM = [ self::france->name => 250, self::guadeloupe->name => 312, self::martinique->name => 474, self::frenchGuiana->name => 254, self::reunion->name => 638, self::saintPierreAndMiquelon->name => 666, self::mayotte->name => 175, self::saintBarthelemy->name => 652, self::saintMartinFrenchPart->name => 663, self::wallisAndFutuna->name => 876, self::frenchPolynesia->name => 258, self::newCaledonia->name => 540, ]; /** * Get ISOCODE */ public function iso(): string { return self::ISOCODES[$this->name] ?? throw UnknownCountryIsoCodeException::fromCountry($this); } /** * Get ISOCODE NUM */ public function isoNum(): int { return self::ISOCODES_NUM[$this->name] ?? throw UnknownCountryIsoCodeException::fromCountry($this); } /** * Get ISOCODE */ public function isoCode(): ?string { return self::ISOCODES[$this->name] ?? null; } /** * Get Country from isocode * * @throws \RuntimeException If the iso code cannot be resolved. */ public static function fromIsoCode(string $isoCode): self { $isoToCountries = array_flip(self::ISOCODES); $countryName = array_key_exists( $isoCode, $isoToCountries ) ? $isoToCountries[$isoCode] : ''; $country = self::make($countryName, 'label'); if ($country === null) { throw UnknownCountryIsoCodeException::fromIsoCode($isoCode); } return $country; } /** * Get enum ISOCODES * * @return array */ public static function toIsoCodes(): array { return self::ISOCODES; } }