AJenbo/agcms

View on GitHub
application/inc/Countries.php

Summary

Maintainability
C
1 day
Test Coverage
A
100%
<?php

namespace App;

/**
 * Array with key in ISO 3166-1 alpha-2 and value as contry name, sorted by name.
 */
class Countries
{
    /**
     * @return array<string, string>
     */
    private static function getCountries(): array
    {
        return [
            'DK' => _('Denmark'),
            'FI' => _('Finland'),
            'NO' => _('Norway'),
            'SE' => _('Sweden'),
            'AF' => _('Afghanistan'),
            'AL' => _('Albania'),
            'DZ' => _('Algeria'),
            'AS' => _('American Samoa'),
            'AD' => _('Andorra'),
            'AO' => _('Angola'),
            'AI' => _('Anguilla'),
            //'AQ' => _('Antarctica'),
            'AG' => _('Antigua and Barbuda'),
            'AR' => _('Argentina'),
            'AM' => _('Armenia'),
            'AW' => _('Aruba'),
            'AU' => _('Australia'),
            'AT' => _('Austria'),
            'AZ' => _('Azerbaidjan'),
            'BS' => _('Bahamas'),
            'BH' => _('Bahrain'),
            'BD' => _('Bangladesh'),
            'BB' => _('Barbados'),
            'BY' => _('Belarus'),
            'BE' => _('Belgium'),
            'BZ' => _('Belize'),
            'BJ' => _('Benin'),
            'BM' => _('Bermuda'),
            'BT' => _('Bhutan'),
            'BO' => _('Bolivia'),
            'BA' => _('Bosnia-Herzegovina'),
            'BW' => _('Botswana'),
            //'BV' => _('Bouvet Island'),
            'BR' => _('Brazil'),
            'IO' => _('British Indian Ocean Territory'),
            'BN' => _('Brunei Darussalam'),
            'BG' => _('Bulgaria'),
            'BF' => _('Burkina Faso'),
            'BI' => _('Burundi'),
            'KH' => _('Cambodia'),
            'CM' => _('Cameroon'),
            'CA' => _('Canada'),
            'CV' => _('Cape Verde'),
            'KY' => _('Cayman Islands'),
            'CF' => _('Central African Republic'),
            'TD' => _('Chad'),
            'CL' => _('Chile'),
            'CN' => _('China'),
            //'CX' => _('Christmas Island'),
            //'CC' => _('Cocos (Keeling) Islands'),
            'CO' => _('Colombia'),
            'KM' => _('Comoros'),
            'CG' => _('Congo'),
            'CK' => _('Cook Islands'),
            'CR' => _('Costa Rica'),
            'HR' => _('Croatia'),
            'CU' => _('Cuba'),
            'CY' => _('Cyprus'),
            'CZ' => _('Czech Republic'),
            'DJ' => _('Djibouti'),
            'DM' => _('Dominica'),
            'DO' => _('Dominican Republic'),
            'TL' => _('East Timor'),
            'EC' => _('Ecuador'),
            'EG' => _('Egypt'),
            'SV' => _('El Salvador'),
            'GQ' => _('Equatorial Guinea'),
            'ER' => _('Eritrea'),
            'EE' => _('Estonia'),
            'ET' => _('Ethiopia'),
            'FK' => _('Falkland Islands'),
            'FO' => _('Faroe Islands'),
            'FJ' => _('Fiji'),
            //'SU' => _('Former USSR'),
            'FR' => _('France'),
            //'FX' => _('France (European Territory)'),
            'GF' => _('French Guyana'),
            'TF' => _('French Southern Territories'),
            'GA' => _('Gabon'),
            'GM' => _('Gambia'),
            'GE' => _('Georgia'),
            'DE' => _('Germany'),
            'GH' => _('Ghana'),
            'GI' => _('Gibraltar'),
            'GB' => _('Great Britain'),
            'GR' => _('Greece'),
            'GL' => _('Greenland'),
            'GD' => _('Grenada'),
            'GP' => _('Guadeloupe (French)'),
            'GU' => _('Guam (USA)'),
            'GT' => _('Guatemala'),
            'GN' => _('Guinea'),
            'GW' => _('Guinea Bissau'),
            'GY' => _('Guyana'),
            'HT' => _('Haiti'),
            //'HM' => _('Heard and McDonald Islands'),
            'HN' => _('Honduras'),
            'HK' => _('Hong Kong'),
            'HU' => _('Hungary'),
            'IS' => _('Iceland'),
            'IN' => _('India'),
            'ID' => _('Indonesia'),
            'IR' => _('Iran'),
            'IQ' => _('Iraq'),
            'IE' => _('Ireland'),
            'IL' => _('Israel'),
            'IT' => _('Italy'),
            'CI' => _('Ivory Coast'),
            'JM' => _('Jamaica'),
            'JP' => _('Japan'),
            'JO' => _('Jordan'),
            'KZ' => _('Kazakhstan'),
            'KE' => _('Kenya'),
            'KI' => _('Kiribati'),
            'KW' => _('Kuwait'),
            'KG' => _('Kyrgyzstan'),
            'LA' => _('Laos'),
            'LV' => _('Latvia'),
            'LB' => _('Lebanon'),
            'LS' => _('Lesotho'),
            'LR' => _('Liberia'),
            'LY' => _('Libya'),
            'LI' => _('Liechtenstein'),
            'LT' => _('Lithuania'),
            'LU' => _('Luxembourg'),
            'MO' => _('Macau'),
            'MK' => _('Macedonia'),
            'MG' => _('Madagascar'),
            'MW' => _('Malawi'),
            'MY' => _('Malaysia'),
            'MV' => _('Maldives'),
            'ML' => _('Mali'),
            'MT' => _('Malta'),
            //'MH' => _('Marshall Islands'),
            'MQ' => _('Martinique (French)'),
            'MR' => _('Mauritania'),
            'MU' => _('Mauritius'),
            'YT' => _('Mayotte'),
            'MX' => _('Mexico'),
            'FM' => _('Micronesia'),
            'MD' => _('Moldavia'),
            'MC' => _('Monaco'),
            'MN' => _('Mongolia'),
            'ME' => _('Montenegro'),
            'MS' => _('Montserrat'),
            'MA' => _('Morocco'),
            'MZ' => _('Mozambique'),
            'MM' => _('Myanmar'),
            'NA' => _('Namibia'),
            'NR' => _('Nauru'),
            'NP' => _('Nepal'),
            'NL' => _('Netherlands'),
            'AN' => _('Netherlands Antilles'),
            //'NT' => _('Neutral Zone'),
            'NC' => _('New Caledonia (French)'),
            'NZ' => _('New Zealand'),
            'NI' => _('Nicaragua'),
            'NG' => _('Nigeria'),
            //'NU' => _('Niue'),
            //'NF' => _('Norfolk Island'),
            'KP' => _('North Korea'),
            //'MP' => _('Northern Mariana Islands'),
            'OM' => _('Oman'),
            'PK' => _('Pakistan'),
            //'PW' => _('Palau'),
            'PA' => _('Panama'),
            'PG' => _('Papua New Guinea'),
            'PY' => _('Paraguay'),
            'PE' => _('Peru'),
            'PH' => _('Philippines'),
            'PN' => _('Pitcairn Island'),
            'PL' => _('Poland'),
            'PF' => _('Polynesia (French)'),
            'PT' => _('Portugal'),
            'PR' => _('Puerto Rico'),
            'QA' => _('Qatar'),
            'RE' => _('Reunion (French)'),
            'RO' => _('Romania'),
            'RU' => _('Russia'),
            'RW' => _('Rwanda'),
            'GS' => _('S. Georgia & S. Sandwich Isls.'),
            'SH' => _('Saint Helena'),
            'KN' => _('Saint Kitts & Nevis Anguilla'),
            'LC' => _('Saint Lucia'),
            'PM' => _('Saint Pierre and Miquelon'),
            'ST' => _('Saint Tome (Sao Tome) and Principe'),
            'VC' => _('Saint Vincent & Grenadines'),
            'WS' => _('Samoa'),
            'SM' => _('San Marino'),
            'SA' => _('Saudi Arabia'),
            'SN' => _('Senegal'),
            'RS' => _('Serbia'),
            'SC' => _('Seychelles'),
            'SL' => _('Sierra Leone'),
            'SG' => _('Singapore'),
            'SK' => _('Slovakia'),
            'SI' => _('Slovenia'),
            'SB' => _('Solomon Islands'),
            'SO' => _('Somalia'),
            'ZA' => _('South Africa'),
            'KR' => _('South Korea'),
            'ES' => _('Spain'),
            'LK' => _('Sri Lanka'),
            'SD' => _('Sudan'),
            'SR' => _('Suriname'),
            //'SJ' => _('Svalbard and Jan Mayen Islands'),
            'SZ' => _('Swaziland'),
            'CH' => _('Switzerland'),
            'SY' => _('Syria'),
            'TJ' => _('Tadjikistan'),
            'TW' => _('Taiwan'),
            'TZ' => _('Tanzania'),
            'TH' => _('Thailand'),
            'TG' => _('Togo'),
            //'TK' => _('Tokelau'),
            'TO' => _('Tonga'),
            'TT' => _('Trinidad and Tobago'),
            'TN' => _('Tunisia'),
            'TR' => _('Turkey'),
            'TM' => _('Turkmenistan'),
            'TC' => _('Turks and Caicos Islands'),
            'TV' => _('Tuvalu'),
            'UG' => _('Uganda'),
            'UA' => _('Ukraine'),
            'AE' => _('United Arab Emirates'),
            'US' => _('United States'),
            'UY' => _('Uruguay'),
            //'UM USA' => _('Minor Outlying Islands'),
            'UZ' => _('Uzbekistan'),
            'VU' => _('Vanuatu'),
            'VA' => _('Vatican City State'),
            'VE' => _('Venezuela'),
            'VN' => _('Vietnam'),
            'VG' => _('Virgin Islands (British)'),
            'VI' => _('Virgin Islands (USA)'),
            'WF' => _('Wallis and Futuna Islands'),
            //'EH' => _('Western Sahara'),
            'YE' => _('Yemen'),
            //'ZR' => _('Zaire'),
            'ZM' => _('Zambia'),
            'ZW' => _('Zimbabwe'),
            'AX' => _('Ă…land'),
        ];
    }

/**
 * @return array<string, string>
 */
public static function getOrdered(): array
{
    $countries = self::getCountries();
    natcasesort($countries);

    return $countries;
}
}