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' ]; /** * Get valid countries label. * * @return array */ public static function getValidCountriesLabel(): array { return \array_map(function (self $country) { return $country->label(); }, self::getValidCountries()); } /** * Get valid countries value. * * @return array */ public static function getValidCountriesValues(): array { return \array_map(function (self $country) { return $country->value(); }, self::getValidCountries()); } /** * Get Alpha 2 ISO code of valid countries * * @return array */ public static function getValidIsoAplha2Codes(): array { return \array_values(self::isoCodes()); } /** * Get valid countries * * @return array */ public static function getValidCountries(): array { return [ Country::belgium, Country::luxembourg, Country::france, Country::guadeloupe, Country::martinique, Country::frenchGuiana, Country::reunion, Country::saintPierreAndMiquelon, Country::mayotte, Country::saintBarthelemy, Country::saintMartinFrenchPart, Country::wallisAndFutuna, Country::frenchPolynesia, Country::newCaledonia, Country::netherlands, ]; } /** * Enum classes * * @return array */ protected static function isoCodes(): array { return [ 'france' => 'FR', 'belgium' => 'BE', 'luxembourg' => 'LU', 'guadeloupe' => 'GP', 'martinique' => 'MQ', 'frenchGuiana' => 'GF', 'reunion' => 'RE', 'saintPierreAndMiquelon' => 'PM', 'mayotte' => 'YT', 'saintBarthelemy' => 'BL', 'saintMartinFrenchPart' => 'MF', 'wallisAndFutuna' => 'WF', 'frenchPolynesia' => 'PF', 'newCaledonia' => 'NC', 'netherlands' => 'NL', ]; } /** * @param string $attribute * @return integer|string|null */ public function get(string $attribute): int|string|null { if ($attribute === 'iso') { return $this->isoCodes()[$this->name] ?? null; } return $this->{$attribute}; } }