Passed
Branch master (837a03)
by Tomáš
02:48
created

Country::validateCode()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 2
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 4
rs 10
1
<?php
2
3
namespace Inspirum\Balikobot\Definitions;
4
5
use InvalidArgumentException;
6
7
final class Country
8
{
9
    /**
10
     * Afghanistan
11
     *
12
     * @var string
13
     */
14
    public const AFGHANISTAN = 'AF';
15
16
    /**
17
     * Aland Islands
18
     *
19
     * @var string
20
     */
21
    public const ALAND_ISLANDS = 'AX';
22
23
    /**
24
     * Albania
25
     *
26
     * @var string
27
     */
28
    public const ALBANIA = 'AL';
29
30
    /**
31
     * Algeria
32
     *
33
     * @var string
34
     */
35
    public const ALGERIA = 'DZ';
36
37
    /**
38
     * American Samoa
39
     *
40
     * @var string
41
     */
42
    public const AMERICAN_SAMOA = 'AS';
43
44
    /**
45
     * Andorra
46
     *
47
     * @var string
48
     */
49
    public const ANDORRA = 'AD';
50
51
    /**
52
     * Angola
53
     *
54
     * @var string
55
     */
56
    public const ANGOLA = 'AO';
57
58
    /**
59
     * Anguilla
60
     *
61
     * @var string
62
     */
63
    public const ANGUILLA = 'AI';
64
65
    /**
66
     * Antarctica
67
     *
68
     * @var string
69
     */
70
    public const ANTARCTICA = 'AQ';
71
72
    /**
73
     * Antigua and Barbuda
74
     *
75
     * @var string
76
     */
77
    public const ANTIGUA_AND_BARBUDA = 'AG';
78
79
    /**
80
     * Argentina
81
     *
82
     * @var string
83
     */
84
    public const ARGENTINA = 'AR';
85
86
    /**
87
     * Armenia
88
     *
89
     * @var string
90
     */
91
    public const ARMENIA = 'AM';
92
93
    /**
94
     * Aruba
95
     *
96
     * @var string
97
     */
98
    public const ARUBA = 'AW';
99
100
    /**
101
     * Australia
102
     *
103
     * @var string
104
     */
105
    public const AUSTRALIA = 'AU';
106
107
    /**
108
     * Austria
109
     *
110
     * @var string
111
     */
112
    public const AUSTRIA = 'AT';
113
114
    /**
115
     * Azerbaijan
116
     *
117
     * @var string
118
     */
119
    public const AZERBAIJAN = 'AZ';
120
121
    /**
122
     * Bahamas
123
     *
124
     * @var string
125
     */
126
    public const BAHAMAS = 'BS';
127
128
    /**
129
     * Bahrain
130
     *
131
     * @var string
132
     */
133
    public const BAHRAIN = 'BH';
134
135
    /**
136
     * Bangladesh
137
     *
138
     * @var string
139
     */
140
    public const BANGLADESH = 'BD';
141
142
    /**
143
     * Barbados
144
     *
145
     * @var string
146
     */
147
    public const BARBADOS = 'BB';
148
149
    /**
150
     * Belarus
151
     *
152
     * @var string
153
     */
154
    public const BELARUS = 'BY';
155
156
    /**
157
     * Belgium
158
     *
159
     * @var string
160
     */
161
    public const BELGIUM = 'BE';
162
163
    /**
164
     * Belize
165
     *
166
     * @var string
167
     */
168
    public const BELIZE = 'BZ';
169
170
    /**
171
     * Benin
172
     *
173
     * @var string
174
     */
175
    public const BENIN = 'BJ';
176
177
    /**
178
     * Bermuda
179
     *
180
     * @var string
181
     */
182
    public const BERMUDA = 'BM';
183
184
    /**
185
     * Bhutan
186
     *
187
     * @var string
188
     */
189
    public const BHUTAN = 'BT';
190
191
    /**
192
     * Bolivia (Plurinational State of)
193
     *
194
     * @var string
195
     */
196
    public const BOLIVIA = 'BO';
197
198
    /**
199
     * Bonaire; Sint Eustatius and Saba
200
     *
201
     * @var string
202
     */
203
    public const BONAIRE = 'BQ';
204
205
    /**
206
     * Bosnia and Herzegovina
207
     *
208
     * @var string
209
     */
210
    public const BOSNIA_AND_HERZEGOVINA = 'BA';
211
212
    /**
213
     * Botswana
214
     *
215
     * @var string
216
     */
217
    public const BOTSWANA = 'BW';
218
219
    /**
220
     * Bouvet Island
221
     *
222
     * @var string
223
     */
224
    public const BOUVET_ISLAND = 'BV';
225
226
    /**
227
     * Brazil
228
     *
229
     * @var string
230
     */
231
    public const BRAZIL = 'BR';
232
233
    /**
234
     * British Indian Ocean Territory
235
     *
236
     * @var string
237
     */
238
    public const BRITISH_INDIAN_OCEAN_TERRITORY = 'IO';
239
240
    /**
241
     * Brunei Darussalam
242
     *
243
     * @var string
244
     */
245
    public const BRUNEI_DARUSSALAM = 'BN';
246
247
    /**
248
     * Bulgaria
249
     *
250
     * @var string
251
     */
252
    public const BULGARIA = 'BG';
253
254
    /**
255
     * Burkina Faso
256
     *
257
     * @var string
258
     */
259
    public const BURKINA_FASO = 'BF'; /* <*/
260
    /**
261
     * Burundi
262
     *
263
     * @var string
264
     */
265
    public const BURUNDI = 'BI';
266
267
    /**
268
     * Cabo Verde
269
     *
270
     * @var string
271
     */
272
    public const CABO_VERDE = 'CV';
273
274
    /**
275
     * Cambodia
276
     *
277
     * @var string
278
     */
279
    public const CAMBODIA = 'KH';
280
281
    /**
282
     * Cameroon
283
     *
284
     * @var string
285
     */
286
    public const CAMEROON = 'CM';
287
288
    /**
289
     * Canada
290
     *
291
     * @var string
292
     */
293
    public const CANADA = 'CA';
294
295
    /**
296
     * Cayman Islands
297
     *
298
     * @var string
299
     */
300
    public const CAYMAN_ISLANDS = 'KY';
301
302
    /**
303
     * Central African Republic
304
     *
305
     * @var string
306
     */
307
    public const CENTRAL_AFRICAN_REPUBLIC = 'CF';
308
309
    /**
310
     * Chad
311
     *
312
     * @var string
313
     */
314
    public const CHAD = 'TD';
315
316
    /**
317
     * Chile
318
     *
319
     * @var string
320
     */
321
    public const CHILE = 'CL';
322
323
    /**
324
     * China
325
     *
326
     * @var string
327
     */
328
    public const CHINA = 'CN';
329
330
    /**
331
     * Christmas Island
332
     *
333
     * @var string
334
     */
335
    public const CHRISTMAS_ISLAND = 'CX';
336
337
    /**
338
     * Cocos (Keeling) Islands
339
     *
340
     * @var string
341
     */
342
    public const COCOS_ISLANDS = 'CC';
343
344
    /**
345
     * Colombia
346
     *
347
     * @var string
348
     */
349
    public const COLOMBIA = 'CO';
350
351
    /**
352
     * Comoros
353
     *
354
     * @var string
355
     */
356
    public const COMOROS = 'KM';
357
358
    /**
359
     * Congo
360
     *
361
     * @var string
362
     */
363
    public const CONGO = 'CG';
364
365
    /**
366
     * Congo (Democratic Republic of the)
367
     *
368
     * @var string
369
     */
370
    public const CONGO_DEMOCRATIC_REPUBLIC = 'CD';
371
372
    /**
373
     * Cook Islands
374
     *
375
     * @var string
376
     */
377
    public const COOK_ISLANDS = 'CK'; /* <*/
378
    /**
379
     * Costa Rica
380
     *
381
     * @var string
382
     */
383
    public const COSTA_RICA = 'CR';
384
385
    /**
386
     * Côte d'Ivoire
387
     *
388
     * @var string
389
     */
390
    public const COTE_DIVOIRE = 'CI';
391
392
    /**
393
     * Croatia
394
     *
395
     * @var string
396
     */
397
    public const CROATIA = 'HR';
398
399
    /**
400
     * Cuba
401
     *
402
     * @var string
403
     */
404
    public const CUBA = 'CU';
405
406
    /**
407
     * Curaçao
408
     *
409
     * @var string
410
     */
411
    public const CURACAO = 'CW';
412
413
    /**
414
     * Cyprus
415
     *
416
     * @var string
417
     */
418
    public const CYPRUS = 'CY';
419
420
    /**
421
     * Czech Republic
422
     *
423
     * @var string
424
     */
425
    public const CZECH_REPUBLIC = 'CZ';
426
427
    /**
428
     * Denmark
429
     *
430
     * @var string
431
     */
432
    public const DENMARK = 'DK';
433
434
    /**
435
     * Djibouti
436
     *
437
     * @var string
438
     */
439
    public const DJIBOUTI = 'DJ';
440
441
    /**
442
     * Dominica
443
     *
444
     * @var string
445
     */
446
    public const DOMINICA = 'DM';
447
448
    /**
449
     * Dominican Republic
450
     *
451
     * @var string
452
     */
453
    public const DOMINICAN_REPUBLIC = 'DO';
454
455
    /**
456
     * Ecuador
457
     *
458
     * @var string
459
     */
460
    public const ECUADOR = 'EC';
461
462
    /**
463
     * Egypt
464
     *
465
     * @var string
466
     */
467
    public const EGYPT = 'EG';
468
469
    /**
470
     * El Salvador
471
     *
472
     * @var string
473
     */
474
    public const EL_SALVADOR = 'SV';
475
476
    /**
477
     * Equatorial Guinea
478
     *
479
     * @var string
480
     */
481
    public const EQUATORIAL_GUINEA = 'GQ';
482
483
    /**
484
     * Eritrea
485
     *
486
     * @var string
487
     */
488
    public const ERITREA = 'ER';
489
490
    /**
491
     * Estonia
492
     *
493
     * @var string
494
     */
495
    public const ESTONIA = 'EE';
496
497
    /**
498
     * Ethiopia
499
     *
500
     * @var string
501
     */
502
    public const ETHIOPIA = 'ET';
503
504
    /**
505
     * Falkland Islands (Malvinas)
506
     *
507
     * @var string
508
     */
509
    public const FALKLAND_ISLANDS = 'FK';
510
511
    /**
512
     * Faroe Islands
513
     *
514
     * @var string
515
     */
516
    public const FAROE_ISLANDS = 'FO';
517
518
    /**
519
     * Fiji
520
     *
521
     * @var string
522
     */
523
    public const FIJI = 'FJ';
524
525
    /**
526
     * Finland
527
     *
528
     * @var string
529
     */
530
    public const FINLAND = 'FI';
531
532
    /**
533
     * France
534
     *
535
     * @var string
536
     */
537
    public const FRANCE = 'FR';
538
539
    /**
540
     * French Guiana
541
     *
542
     * @var string
543
     */
544
    public const FRENCH_GUIANA = 'GF';
545
546
    /**
547
     * French Polynesia
548
     *
549
     * @var string
550
     */
551
    public const FRENCH_POLYNESIA = 'PF';
552
553
    /**
554
     * French Southern Territories
555
     *
556
     * @var string
557
     */
558
    public const FRENCH_SOUTHERN_TERRITORIES = 'TF';
559
560
    /**
561
     * Gabon
562
     *
563
     * @var string
564
     */
565
    public const GABON = 'GA';
566
567
    /**
568
     * Gambia
569
     *
570
     * @var string
571
     */
572
    public const GAMBIA = 'GM';
573
574
    /**
575
     * Georgia
576
     *
577
     * @var string
578
     */
579
    public const GEORGIA = 'GE';
580
581
    /**
582
     * Germany
583
     *
584
     * @var string
585
     */
586
    public const GERMANY = 'DE';
587
588
    /**
589
     * Ghana
590
     *
591
     * @var string
592
     */
593
    public const GHANA = 'GH';
594
595
    /**
596
     * Gibraltar
597
     *
598
     * @var string
599
     */
600
    public const GIBRALTAR = 'GI';
601
602
    /**
603
     * Greece
604
     *
605
     * @var string
606
     */
607
    public const GREECE = 'GR';
608
609
    /**
610
     * Greenland
611
     *
612
     * @var string
613
     */
614
    public const GREENLAND = 'GL';
615
616
    /**
617
     * Grenada
618
     *
619
     * @var string
620
     */
621
    public const GRENADA = 'GD';
622
623
    /**
624
     * Guadeloupe
625
     *
626
     * @var string
627
     */
628
    public const GUADELOUPE = 'GP';
629
630
    /**
631
     * Guam
632
     *
633
     * @var string
634
     */
635
    public const GUAM = 'GU';
636
637
    /**
638
     * Guatemala
639
     *
640
     * @var string
641
     */
642
    public const GUATEMALA = 'GT';
643
644
    /**
645
     * Guernsey
646
     *
647
     * @var string
648
     */
649
    public const GUERNSEY = 'GG';
650
651
    /**
652
     * Guinea
653
     *
654
     * @var string
655
     */
656
    public const GUINEA = 'GN';
657
658
    /**
659
     * Guinea-Bissau
660
     *
661
     * @var string
662
     */
663
    public const GUINEA_BISSAU = 'GW';
664
665
    /**
666
     * Guyana
667
     *
668
     * @var string
669
     */
670
    public const GUYANA = 'GY';
671
672
    /**
673
     * Haiti
674
     *
675
     * @var string
676
     */
677
    public const HAITI = 'HT';
678
679
    /**
680
     * Heard Island and McDonald Islands
681
     *
682
     * @var string
683
     */
684
    public const HEARD_ISLAND_AND_MCDONALD_ISLANDS = 'HM';
685
686
    /**
687
     * Holy See
688
     *
689
     * @var string
690
     */
691
    public const HOLY_SEE = 'VA';
692
693
    /**
694
     * Honduras
695
     *
696
     * @var string
697
     */
698
    public const HONDURAS = 'HN';
699
700
    /**
701
     * Hong Kong
702
     *
703
     * @var string
704
     */
705
    public const HONG_KONG = 'HK';
706
707
    /**
708
     * Hungary
709
     *
710
     * @var string
711
     */
712
    public const HUNGARY = 'HU';
713
714
    /**
715
     * Iceland
716
     *
717
     * @var string
718
     */
719
    public const ICELAND = 'IS';
720
721
    /**
722
     * India
723
     *
724
     * @var string
725
     */
726
    public const INDIA = 'IN';
727
728
    /**
729
     * Indonesia
730
     *
731
     * @var string
732
     */
733
    public const INDONESIA = 'ID';
734
735
    /**
736
     * Iran (Islamic Republic of)
737
     *
738
     * @var string
739
     */
740
    public const IRAN = 'IR';
741
742
    /**
743
     * Iraq
744
     *
745
     * @var string
746
     */
747
    public const IRAQ = 'IQ';
748
749
    /**
750
     * Ireland
751
     *
752
     * @var string
753
     */
754
    public const IRELAND = 'IE';
755
756
    /**
757
     * Isle of Man
758
     *
759
     * @var string
760
     */
761
    public const ISLE_OF_MAN = 'IM';
762
763
    /**
764
     * Israel
765
     *
766
     * @var string
767
     */
768
    public const ISRAEL = 'IL';
769
770
    /**
771
     * Italy
772
     *
773
     * @var string
774
     */
775
    public const ITALY = 'IT';
776
777
    /**
778
     * Jamaica
779
     *
780
     * @var string
781
     */
782
    public const JAMAICA = 'JM';
783
784
    /**
785
     * Japan
786
     *
787
     * @var string
788
     */
789
    public const JAPAN = 'JP';
790
791
    /**
792
     * Jersey
793
     *
794
     * @var string
795
     */
796
    public const JERSEY = 'JE';
797
798
    /**
799
     * Jordan
800
     *
801
     * @var string
802
     */
803
    public const JORDAN = 'JO';
804
805
    /**
806
     * Kazakhstan
807
     *
808
     * @var string
809
     */
810
    public const KAZAKHSTAN = 'KZ';
811
812
    /**
813
     * Kenya
814
     *
815
     * @var string
816
     */
817
    public const KENYA = 'KE';
818
819
    /**
820
     * Kiribati
821
     *
822
     * @var string
823
     */
824
    public const KIRIBATI = 'KI';
825
826
    /**
827
     * Korea (Democratic People's Republic of)
828
     *
829
     * @var string
830
     */
831
    public const KOREA = 'KP';
832
833
    /**
834
     * Korea (Republic of)
835
     *
836
     * @var string
837
     */
838
    public const KOREA_REPUBLIC = 'KR';
839
840
    /**
841
     * Kuwait
842
     *
843
     * @var string
844
     */
845
    public const KUWAIT = 'KW';
846
847
    /**
848
     * Kyrgyzstan
849
     *
850
     * @var string
851
     */
852
    public const KYRGYZSTAN = 'KG';
853
854
    /**
855
     * Lao People's Democratic Republic
856
     *
857
     * @var string
858
     */
859
    public const LAO = 'LA';
860
861
    /**
862
     * Latvia
863
     *
864
     * @var string
865
     */
866
    public const LATVIA = 'LV';
867
868
    /**
869
     * Lebanon
870
     *
871
     * @var string
872
     */
873
    public const LEBANON = 'LB';
874
875
    /**
876
     * Lesotho
877
     *
878
     * @var string
879
     */
880
    public const LESOTHO = 'LS';
881
882
    /**
883
     * Liberia
884
     *
885
     * @var string
886
     */
887
    public const LIBERIA = 'LR';
888
889
    /**
890
     * Libya
891
     *
892
     * @var string
893
     */
894
    public const LIBYA = 'LY';
895
896
    /**
897
     * Liechtenstein
898
     *
899
     * @var string
900
     */
901
    public const LIECHTENSTEIN = 'LI';
902
903
    /**
904
     * Lithuania
905
     *
906
     * @var string
907
     */
908
    public const LITHUANIA = 'LT';
909
910
    /**
911
     * Luxembourg
912
     *
913
     * @var string
914
     */
915
    public const LUXEMBOURG = 'LU';
916
917
    /**
918
     * Macao
919
     *
920
     * @var string
921
     */
922
    public const MACAO = 'MO';
923
924
    /**
925
     * Macedonia (the former Yugoslav Republic of)
926
     *
927
     * @var string
928
     */
929
    public const MACEDONIA = 'MK';
930
931
    /**
932
     * Madagascar
933
     *
934
     * @var string
935
     */
936
    public const MADAGASCAR = 'MG';
937
938
    /**
939
     * Malawi
940
     *
941
     * @var string
942
     */
943
    public const MALAWI = 'MW';
944
945
    /**
946
     * Malaysia
947
     *
948
     * @var string
949
     */
950
    public const MALAYSIA = 'MY';
951
952
    /**
953
     * Maldives
954
     *
955
     * @var string
956
     */
957
    public const MALDIVES = 'MV';
958
959
    /**
960
     * Mali
961
     *
962
     * @var string
963
     */
964
    public const MALI = 'ML';
965
966
    /**
967
     * Malta
968
     *
969
     * @var string
970
     */
971
    public const MALTA = 'MT';
972
973
    /**
974
     * Marshall Islands
975
     *
976
     * @var string
977
     */
978
    public const MARSHALL_ISLANDS = 'MH';
979
980
    /**
981
     * Martinique
982
     *
983
     * @var string
984
     */
985
    public const MARTINIQUE = 'MQ';
986
987
    /**
988
     * Mauritania
989
     *
990
     * @var string
991
     */
992
    public const MAURITANIA = 'MR';
993
994
    /**
995
     * Mauritius
996
     *
997
     * @var string
998
     */
999
    public const MAURITIUS = 'MU';
1000
1001
    /**
1002
     * Mayotte
1003
     *
1004
     * @var string
1005
     */
1006
    public const MAYOTTE = 'YT';
1007
1008
    /**
1009
     * Mexico
1010
     *
1011
     * @var string
1012
     */
1013
    public const MEXICO = 'MX';
1014
1015
    /**
1016
     * Micronesia (Federated States of)
1017
     *
1018
     * @var string
1019
     */
1020
    public const MICRONESIA = 'FM';
1021
1022
    /**
1023
     * Moldova (Republic of)
1024
     *
1025
     * @var string
1026
     */
1027
    public const MOLDOVA = 'MD';
1028
1029
    /**
1030
     * Monaco
1031
     *
1032
     * @var string
1033
     */
1034
    public const MONACO = 'MC';
1035
1036
    /**
1037
     * Mongolia
1038
     *
1039
     * @var string
1040
     */
1041
    public const MONGOLIA = 'MN';
1042
1043
    /**
1044
     * Montenegro
1045
     *
1046
     * @var string
1047
     */
1048
    public const MONTENEGRO = 'ME';
1049
1050
    /**
1051
     * Montserrat
1052
     *
1053
     * @var string
1054
     */
1055
    public const MONTSERRAT = 'MS';
1056
1057
    /**
1058
     * Morocco
1059
     *
1060
     * @var string
1061
     */
1062
    public const MOROCCO = 'MA';
1063
1064
    /**
1065
     * Mozambique
1066
     *
1067
     * @var string
1068
     */
1069
    public const MOZAMBIQUE = 'MZ';
1070
1071
    /**
1072
     * Myanmar
1073
     *
1074
     * @var string
1075
     */
1076
    public const MYANMAR = 'MM';
1077
1078
    /**
1079
     * Namibia
1080
     *
1081
     * @var string
1082
     */
1083
    public const NAMIBIA = 'NA';
1084
1085
    /**
1086
     * Nauru
1087
     *
1088
     * @var string
1089
     */
1090
    public const NAURU = 'NR';
1091
1092
    /**
1093
     * Nepal
1094
     *
1095
     * @var string
1096
     */
1097
    public const NEPAL = 'NP';
1098
1099
    /**
1100
     * Netherlands
1101
     *
1102
     * @var string
1103
     */
1104
    public const NETHERLANDS = 'NL';
1105
1106
    /**
1107
     * New Caledonia
1108
     *
1109
     * @var string
1110
     */
1111
    public const NEW_CALEDONIA = 'NC';
1112
1113
    /**
1114
     * New Zealand
1115
     *
1116
     * @var string
1117
     */
1118
    public const NEW_ZEALAND = 'NZ';
1119
1120
    /**
1121
     * Nicaragua
1122
     *
1123
     * @var string
1124
     */
1125
    public const NICARAGUA = 'NI';
1126
1127
    /**
1128
     * Niger
1129
     *
1130
     * @var string
1131
     */
1132
    public const NIGER = 'NE';
1133
1134
    /**
1135
     * Nigeria
1136
     *
1137
     * @var string
1138
     */
1139
    public const NIGERIA = 'NG';
1140
1141
    /**
1142
     * Niue
1143
     *
1144
     * @var string
1145
     */
1146
    public const NIUE = 'NU';
1147
1148
    /**
1149
     * Norfolk Island
1150
     *
1151
     * @var string
1152
     */
1153
    public const NORFOLK_ISLAND = 'NF';
1154
1155
    /**
1156
     * Northern Mariana Islands
1157
     *
1158
     * @var string
1159
     */
1160
    public const NORTHERN_MARIANA_ISLANDS = 'MP'; /* <*/
1161
    /**
1162
     * Norway
1163
     *
1164
     * @var string
1165
     */
1166
    public const NORWAY = 'NO';
1167
1168
    /**
1169
     * Oman
1170
     *
1171
     * @var string
1172
     */
1173
    public const OMAN = 'OM';
1174
1175
    /**
1176
     * Pakistan
1177
     *
1178
     * @var string
1179
     */
1180
    public const PAKISTAN = 'PK';
1181
1182
    /**
1183
     * Palau
1184
     *
1185
     * @var string
1186
     */
1187
    public const PALAU = 'PW';
1188
1189
    /**
1190
     * Palestine; State of
1191
     *
1192
     * @var string
1193
     */
1194
    public const PALESTINE = 'PS';
1195
1196
    /**
1197
     * Panama
1198
     *
1199
     * @var string
1200
     */
1201
    public const PANAMA = 'PA';
1202
1203
    /**
1204
     * Papua New Guinea
1205
     *
1206
     * @var string
1207
     */
1208
    public const PAPUA_NEW_GUINEA = 'PG';
1209
1210
    /**
1211
     * Paraguay
1212
     *
1213
     * @var string
1214
     */
1215
    public const PARAGUAY = 'PY';
1216
1217
    /**
1218
     * Peru
1219
     *
1220
     * @var string
1221
     */
1222
    public const PERU = 'PE';
1223
1224
    /**
1225
     * Philippines
1226
     *
1227
     * @var string
1228
     */
1229
    public const PHILIPPINES = 'PH';
1230
1231
    /**
1232
     * Pitcairn
1233
     *
1234
     * @var string
1235
     */
1236
    public const PITCAIRN = 'PN';
1237
1238
    /**
1239
     * Poland
1240
     *
1241
     * @var string
1242
     */
1243
    public const POLAND = 'PL';
1244
1245
    /**
1246
     * Portugal
1247
     *
1248
     * @var string
1249
     */
1250
    public const PORTUGAL = 'PT';
1251
1252
    /**
1253
     * Puerto Rico
1254
     *
1255
     * @var string
1256
     */
1257
    public const PUERTO_RICO = 'PR';
1258
1259
    /**
1260
     * Qatar
1261
     *
1262
     * @var string
1263
     */
1264
    public const QATAR = 'QA';
1265
1266
    /**
1267
     * Réunion
1268
     *
1269
     * @var string
1270
     */
1271
    public const REUNION = 'RE';
1272
1273
    /**
1274
     * Romania
1275
     *
1276
     * @var string
1277
     */
1278
    public const ROMANIA = 'RO';
1279
1280
    /**
1281
     * Russian Federation
1282
     *
1283
     * @var string
1284
     */
1285
    public const RUSSIAN_FEDERATION = 'RU'; /* <*/
1286
    /**
1287
     * Rwanda
1288
     *
1289
     * @var string
1290
     */
1291
    public const RWANDA = 'RW';
1292
1293
    /**
1294
     * Saint Barthélemy
1295
     *
1296
     * @var string
1297
     */
1298
    public const SAINT_BARTHELEMY = 'BL';
1299
1300
    /**
1301
     * Saint Helena; Ascension and Tristan da Cunha
1302
     *
1303
     * @var string
1304
     */
1305
    public const SAINT_HELENA = 'SH';
1306
1307
    /**
1308
     * Saint Kitts and Nevis
1309
     *
1310
     * @var string
1311
     */
1312
    public const SAINT_KITTS_AND_NEVIS = 'KN';
1313
1314
    /**
1315
     * Saint Lucia
1316
     *
1317
     * @var string
1318
     */
1319
    public const SAINT_LUCIA = 'LC';
1320
1321
    /**
1322
     * Saint Martin (French part)
1323
     *
1324
     * @var string
1325
     */
1326
    public const SAINT_MARTIN = 'MF';
1327
1328
    /**
1329
     * Saint Pierre and Miquelon
1330
     *
1331
     * @var string
1332
     */
1333
    public const SAINT_PIERRE_AND_MIQUELON = 'PM';
1334
1335
    /**
1336
     * Saint Vincent and the Grenadines
1337
     *
1338
     * @var string
1339
     */
1340
    public const SAINT_VINCENT_AND_THE_GRENADINES = 'VC';
1341
1342
    /**
1343
     * Samoa
1344
     *
1345
     * @var string
1346
     */
1347
    public const SAMOA = 'WS';
1348
1349
    /**
1350
     * San Marino
1351
     *
1352
     * @var string
1353
     */
1354
    public const SAN_MARINO = 'SM';
1355
1356
    /**
1357
     * Sao Tome and Principe
1358
     *
1359
     * @var string
1360
     */
1361
    public const SAO_TOME_AND_PRINCIPE = 'ST';
1362
1363
    /**
1364
     * Saudi Arabia
1365
     *
1366
     * @var string
1367
     */
1368
    public const SAUDI_ARABIA = 'SA';
1369
1370
    /**
1371
     * Senegal
1372
     *
1373
     * @var string
1374
     */
1375
    public const SENEGAL = 'SN';
1376
1377
    /**
1378
     * Serbia
1379
     *
1380
     * @var string
1381
     */
1382
    public const SERBIA = 'RS';
1383
1384
    /**
1385
     * Seychelles
1386
     *
1387
     * @var string
1388
     */
1389
    public const SEYCHELLES = 'SC';
1390
1391
    /**
1392
     * Sierra Leone
1393
     *
1394
     * @var string
1395
     */
1396
    public const SIERRA_LEONE = 'SL';
1397
1398
    /**
1399
     * Singapore
1400
     *
1401
     * @var string
1402
     */
1403
    public const SINGAPORE = 'SG';
1404
1405
    /**
1406
     * Sint Maarten (Dutch part)
1407
     *
1408
     * @var string
1409
     */
1410
    public const SINT_MAARTEN = 'SX';
1411
1412
    /**
1413
     * Slovakia
1414
     *
1415
     * @var string
1416
     */
1417
    public const SLOVAKIA = 'SK';
1418
1419
    /**
1420
     * Slovenia
1421
     *
1422
     * @var string
1423
     */
1424
    public const SLOVENIA = 'SI';
1425
1426
    /**
1427
     * Solomon Islands
1428
     *
1429
     * @var string
1430
     */
1431
    public const SOLOMON_ISLANDS = 'SB';
1432
1433
    /**
1434
     * Somalia
1435
     *
1436
     * @var string
1437
     */
1438
    public const SOMALIA = 'SO';
1439
1440
    /**
1441
     * South Africa
1442
     *
1443
     * @var string
1444
     */
1445
    public const SOUTH_AFRICA = 'ZA';
1446
1447
    /**
1448
     * South Georgia and the South Sandwich Islands
1449
     *
1450
     * @var string
1451
     */
1452
    public const SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS = 'GS';
1453
1454
    /**
1455
     * South Sudan
1456
     *
1457
     * @var string
1458
     */
1459
    public const SOUTH_SUDAN = 'SS';
1460
1461
    /**
1462
     * Spain
1463
     *
1464
     * @var string
1465
     */
1466
    public const SPAIN = 'ES';
1467
1468
    /**
1469
     * Sri Lanka
1470
     *
1471
     * @var string
1472
     */
1473
    public const SRI_LANKA = 'LK';
1474
1475
    /**
1476
     * Sudan
1477
     *
1478
     * @var string
1479
     */
1480
    public const SUDAN = 'SD';
1481
1482
    /**
1483
     * Suriname
1484
     *
1485
     * @var string
1486
     */
1487
    public const SURINAME = 'SR';
1488
1489
    /**
1490
     * Svalbard and Jan Mayen
1491
     *
1492
     * @var string
1493
     */
1494
    public const SVALBARD_AND_JAN_MAYEN = 'SJ';
1495
1496
    /**
1497
     * Swaziland
1498
     *
1499
     * @var string
1500
     */
1501
    public const SWAZILAND = 'SZ';
1502
1503
    /**
1504
     * Sweden
1505
     *
1506
     * @var string
1507
     */
1508
    public const SWEDEN = 'SE';
1509
1510
    /**
1511
     * Switzerland
1512
     *
1513
     * @var string
1514
     */
1515
    public const SWITZERLAND = 'CH';
1516
1517
    /**
1518
     * Syrian Arab Republic
1519
     *
1520
     * @var string
1521
     */
1522
    public const SYRIAN_ARAB_REPUBLIC = 'SY';
1523
1524
    /**
1525
     * Taiwan; Province of China[a]
1526
     *
1527
     * @var string
1528
     */
1529
    public const TAIWAN = 'TW';
1530
1531
    /**
1532
     * Tajikistan
1533
     *
1534
     * @var string
1535
     */
1536
    public const TAJIKISTAN = 'TJ';
1537
1538
    /**
1539
     * Tanzania; United Republic of
1540
     *
1541
     * @var string
1542
     */
1543
    public const TANZANIA = 'TZ';
1544
1545
    /**
1546
     * Thailand
1547
     *
1548
     * @var string
1549
     */
1550
    public const THAILAND = 'TH';
1551
1552
    /**
1553
     * Timor-Leste
1554
     *
1555
     * @var string
1556
     */
1557
    public const TIMOR_LESTE = 'TL';
1558
1559
    /**
1560
     * Togo
1561
     *
1562
     * @var string
1563
     */
1564
    public const TOGO = 'TG';
1565
1566
    /**
1567
     * Tokelau
1568
     *
1569
     * @var string
1570
     */
1571
    public const TOKELAU = 'TK';
1572
1573
    /**
1574
     * Tonga
1575
     *
1576
     * @var string
1577
     */
1578
    public const TONGA = 'TO';
1579
1580
    /**
1581
     * Trinidad and Tobago
1582
     *
1583
     * @var string
1584
     */
1585
    public const TRINIDAD_AND_TOBAGO = 'TT'; /* <*/
1586
    /**
1587
     * Tunisia
1588
     *
1589
     * @var string
1590
     */
1591
    public const TUNISIA = 'TN';
1592
1593
    /**
1594
     * Turkey
1595
     *
1596
     * @var string
1597
     */
1598
    public const TURKEY = 'TR';
1599
1600
    /**
1601
     *
1602
     * Turkmenistan
1603
     *
1604
     * @var string
1605
     */
1606
    public const TURKMENISTAN = 'TM';
1607
1608
    /**
1609
     * Turks and Caicos Islands
1610
     *
1611
     * @var string
1612
     */
1613
    public const TURKS_AND_CAICOS_ISLANDS = 'TC';
1614
1615
    /**
1616
     * Tuvalu
1617
     *
1618
     * @var string
1619
     */
1620
    public const TUVALU = 'TV';
1621
1622
    /**
1623
     * Uganda
1624
     *
1625
     * @var string
1626
     */
1627
    public const UGANDA = 'UG';
1628
1629
    /**
1630
     * Ukraine
1631
     *
1632
     * @var string
1633
     */
1634
    public const UKRAINE = 'UA';
1635
1636
    /**
1637
     * United Arab Emirates
1638
     *
1639
     * @var string
1640
     */
1641
    public const UNITED_ARAB_EMIRATES = 'AE';
1642
1643
    /**
1644
     * United Kingdom of Great Britain and Northern Ireland
1645
     *
1646
     * @var string
1647
     */
1648
    public const UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND = 'GB';
1649
1650
    /**
1651
     * United States of America
1652
     *
1653
     * @var string
1654
     */
1655
    public const UNITED_STATES_OF_AMERICA = 'US';
1656
1657
    /**
1658
     * United States Minor Outlying Islands
1659
     *
1660
     * @var string
1661
     */
1662
    public const UNITED_STATES_MINOR_OUTLYING_ISLANDS = 'UM';
1663
1664
    /**
1665
     * Uruguay
1666
     *
1667
     * @var string
1668
     */
1669
    public const URUGUAY = 'UY';
1670
1671
    /**
1672
     * Uzbekistan
1673
     *
1674
     * @var string
1675
     */
1676
    public const UZBEKISTAN = 'UZ';
1677
1678
    /**
1679
     * Vanuatu
1680
     *
1681
     * @var string
1682
     */
1683
    public const VANUATU = 'VU';
1684
1685
    /**
1686
     * Venezuela (Bolivarian Republic of)
1687
     *
1688
     * @var string
1689
     */
1690
    public const VENEZUELA = 'VE';
1691
1692
    /**
1693
     * Vietnam
1694
     *
1695
     * @var string
1696
     */
1697
    public const VIETNAM = 'VN';
1698
1699
    /**
1700
     * Virgin Islands (British)
1701
     *
1702
     * @var string
1703
     */
1704
    public const VIRGIN_ISLANDS_BRITISH = 'VG';
1705
1706
    /**
1707
     * Virgin Islands (U.S.)
1708
     *
1709
     * @var string
1710
     */
1711
    public const VIRGIN_ISLANDS_US = 'VI';
1712
1713
    /**
1714
     * Wallis and Futuna
1715
     *
1716
     * @var string
1717
     */
1718
    public const WALLIS_AND_FUTUNA = 'WF';
1719
1720
    /**
1721
     * Western Sahara
1722
     *
1723
     * @var string
1724
     */
1725
    public const WESTERN_SAHARA = 'EH';
1726
1727
    /**
1728
     * Yemen
1729
     *
1730
     * @var string
1731
     */
1732
    public const YEMEN = 'YE';
1733
1734
    /**
1735
     * Zambia
1736
     *
1737
     * @var string
1738
     */
1739
    public const ZAMBIA = 'ZM';
1740
1741
    /**
1742
     * Zimbabwe
1743
     *
1744
     * @var string
1745
     */
1746
    public const ZIMBABWE = 'ZW';
1747
1748
    /**
1749
     * Countries
1750
     *
1751
     * @return array<string>
1752
     */
1753
    public static function all(): array
1754
    {
1755
        return [
1756
            self::AFGHANISTAN,
1757
            self::ALAND_ISLANDS,
1758
            self::ALBANIA,
1759
            self::ALGERIA,
1760
            self::AMERICAN_SAMOA,
1761
            self::ANDORRA,
1762
            self::ANGOLA,
1763
            self::ANGUILLA,
1764
            self::ANTARCTICA,
1765
            self::ANTIGUA_AND_BARBUDA,
1766
            self::ARGENTINA,
1767
            self::ARMENIA,
1768
            self::ARUBA,
1769
            self::AUSTRALIA,
1770
            self::AUSTRIA,
1771
            self::AZERBAIJAN,
1772
            self::BAHAMAS,
1773
            self::BAHRAIN,
1774
            self::BANGLADESH,
1775
            self::BARBADOS,
1776
            self::BELARUS,
1777
            self::BELGIUM,
1778
            self::BELIZE,
1779
            self::BENIN,
1780
            self::BERMUDA,
1781
            self::BHUTAN,
1782
            self::BOLIVIA,
1783
            self::BONAIRE,
1784
            self::BOSNIA_AND_HERZEGOVINA,
1785
            self::BOTSWANA,
1786
            self::BOUVET_ISLAND,
1787
            self::BRAZIL,
1788
            self::BRITISH_INDIAN_OCEAN_TERRITORY,
1789
            self::BRUNEI_DARUSSALAM,
1790
            self::BULGARIA,
1791
            self::BURKINA_FASO,
1792
            self::BURUNDI,
1793
            self::CABO_VERDE,
1794
            self::CAMBODIA,
1795
            self::CAMEROON,
1796
            self::CANADA,
1797
            self::CAYMAN_ISLANDS,
1798
            self::CENTRAL_AFRICAN_REPUBLIC,
1799
            self::CHAD,
1800
            self::CHILE,
1801
            self::CHINA,
1802
            self::CHRISTMAS_ISLAND,
1803
            self::COCOS_ISLANDS,
1804
            self::COLOMBIA,
1805
            self::COMOROS,
1806
            self::CONGO,
1807
            self::CONGO_DEMOCRATIC_REPUBLIC,
1808
            self::COOK_ISLANDS,
1809
            self::COSTA_RICA,
1810
            self::COTE_DIVOIRE,
1811
            self::CROATIA,
1812
            self::CUBA,
1813
            self::CURACAO,
1814
            self::CYPRUS,
1815
            self::CZECH_REPUBLIC,
1816
            self::DENMARK,
1817
            self::DJIBOUTI,
1818
            self::DOMINICA,
1819
            self::DOMINICAN_REPUBLIC,
1820
            self::ECUADOR,
1821
            self::EGYPT,
1822
            self::EL_SALVADOR,
1823
            self::EQUATORIAL_GUINEA,
1824
            self::ERITREA,
1825
            self::ESTONIA,
1826
            self::ETHIOPIA,
1827
            self::FALKLAND_ISLANDS,
1828
            self::FAROE_ISLANDS,
1829
            self::FIJI,
1830
            self::FINLAND,
1831
            self::FRANCE,
1832
            self::FRENCH_GUIANA,
1833
            self::FRENCH_POLYNESIA,
1834
            self::FRENCH_SOUTHERN_TERRITORIES,
1835
            self::GABON,
1836
            self::GAMBIA,
1837
            self::GEORGIA,
1838
            self::GERMANY,
1839
            self::GHANA,
1840
            self::GIBRALTAR,
1841
            self::GREECE,
1842
            self::GREENLAND,
1843
            self::GRENADA,
1844
            self::GUADELOUPE,
1845
            self::GUAM,
1846
            self::GUATEMALA,
1847
            self::GUERNSEY,
1848
            self::GUINEA,
1849
            self::GUINEA_BISSAU,
1850
            self::GUYANA,
1851
            self::HAITI,
1852
            self::HEARD_ISLAND_AND_MCDONALD_ISLANDS,
1853
            self::HOLY_SEE,
1854
            self::HONDURAS,
1855
            self::HONG_KONG,
1856
            self::HUNGARY,
1857
            self::ICELAND,
1858
            self::INDIA,
1859
            self::INDONESIA,
1860
            self::IRAN,
1861
            self::IRAQ,
1862
            self::IRELAND,
1863
            self::ISLE_OF_MAN,
1864
            self::ISRAEL,
1865
            self::ITALY,
1866
            self::JAMAICA,
1867
            self::JAPAN,
1868
            self::JERSEY,
1869
            self::JORDAN,
1870
            self::KAZAKHSTAN,
1871
            self::KENYA,
1872
            self::KIRIBATI,
1873
            self::KOREA,
1874
            self::KOREA_REPUBLIC,
1875
            self::KUWAIT,
1876
            self::KYRGYZSTAN,
1877
            self::LAO,
1878
            self::LATVIA,
1879
            self::LEBANON,
1880
            self::LESOTHO,
1881
            self::LIBERIA,
1882
            self::LIBYA,
1883
            self::LIECHTENSTEIN,
1884
            self::LITHUANIA,
1885
            self::LUXEMBOURG,
1886
            self::MACAO,
1887
            self::MACEDONIA,
1888
            self::MADAGASCAR,
1889
            self::MALAWI,
1890
            self::MALAYSIA,
1891
            self::MALDIVES,
1892
            self::MALI,
1893
            self::MALTA,
1894
            self::MARSHALL_ISLANDS,
1895
            self::MARTINIQUE,
1896
            self::MAURITANIA,
1897
            self::MAURITIUS,
1898
            self::MAYOTTE,
1899
            self::MEXICO,
1900
            self::MICRONESIA,
1901
            self::MOLDOVA,
1902
            self::MONACO,
1903
            self::MONGOLIA,
1904
            self::MONTENEGRO,
1905
            self::MONTSERRAT,
1906
            self::MOROCCO,
1907
            self::MOZAMBIQUE,
1908
            self::MYANMAR,
1909
            self::NAMIBIA,
1910
            self::NAURU,
1911
            self::NEPAL,
1912
            self::NETHERLANDS,
1913
            self::NEW_CALEDONIA,
1914
            self::NEW_ZEALAND,
1915
            self::NICARAGUA,
1916
            self::NIGER,
1917
            self::NIGERIA,
1918
            self::NIUE,
1919
            self::NORFOLK_ISLAND,
1920
            self::NORTHERN_MARIANA_ISLANDS,
1921
            self::NORWAY,
1922
            self::OMAN,
1923
            self::PAKISTAN,
1924
            self::PALAU,
1925
            self::PALESTINE,
1926
            self::PANAMA,
1927
            self::PAPUA_NEW_GUINEA,
1928
            self::PARAGUAY,
1929
            self::PERU,
1930
            self::PHILIPPINES,
1931
            self::PITCAIRN,
1932
            self::POLAND,
1933
            self::PORTUGAL,
1934
            self::PUERTO_RICO,
1935
            self::QATAR,
1936
            self::REUNION,
1937
            self::ROMANIA,
1938
            self::RUSSIAN_FEDERATION,
1939
            self::RWANDA,
1940
            self::SAINT_BARTHELEMY,
1941
            self::SAINT_HELENA,
1942
            self::SAINT_KITTS_AND_NEVIS,
1943
            self::SAINT_LUCIA,
1944
            self::SAINT_MARTIN,
1945
            self::SAINT_PIERRE_AND_MIQUELON,
1946
            self::SAINT_VINCENT_AND_THE_GRENADINES,
1947
            self::SAMOA,
1948
            self::SAN_MARINO,
1949
            self::SAO_TOME_AND_PRINCIPE,
1950
            self::SAUDI_ARABIA,
1951
            self::SENEGAL,
1952
            self::SERBIA,
1953
            self::SEYCHELLES,
1954
            self::SIERRA_LEONE,
1955
            self::SINGAPORE,
1956
            self::SINT_MAARTEN,
1957
            self::SLOVAKIA,
1958
            self::SLOVENIA,
1959
            self::SOLOMON_ISLANDS,
1960
            self::SOMALIA,
1961
            self::SOUTH_AFRICA,
1962
            self::SOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS,
1963
            self::SOUTH_SUDAN,
1964
            self::SPAIN,
1965
            self::SRI_LANKA,
1966
            self::SUDAN,
1967
            self::SURINAME,
1968
            self::SVALBARD_AND_JAN_MAYEN,
1969
            self::SWAZILAND,
1970
            self::SWEDEN,
1971
            self::SWITZERLAND,
1972
            self::SYRIAN_ARAB_REPUBLIC,
1973
            self::TAIWAN,
1974
            self::TAJIKISTAN,
1975
            self::TANZANIA,
1976
            self::THAILAND,
1977
            self::TIMOR_LESTE,
1978
            self::TOGO,
1979
            self::TOKELAU,
1980
            self::TONGA,
1981
            self::TRINIDAD_AND_TOBAGO,
1982
            self::TUNISIA,
1983
            self::TURKEY,
1984
            self::TURKMENISTAN,
1985
            self::TURKS_AND_CAICOS_ISLANDS,
1986
            self::TUVALU,
1987
            self::UGANDA,
1988
            self::UKRAINE,
1989
            self::UNITED_ARAB_EMIRATES,
1990
            self::UNITED_KINGDOM_OF_GREAT_BRITAIN_AND_NORTHERN_IRELAND,
1991
            self::UNITED_STATES_OF_AMERICA,
1992
            self::UNITED_STATES_MINOR_OUTLYING_ISLANDS,
1993
            self::URUGUAY,
1994
            self::UZBEKISTAN,
1995
            self::VANUATU,
1996
            self::VENEZUELA,
1997
            self::VIETNAM,
1998
            self::VIRGIN_ISLANDS_BRITISH,
1999
            self::VIRGIN_ISLANDS_US,
2000
            self::WALLIS_AND_FUTUNA,
2001
            self::WESTERN_SAHARA,
2002
            self::YEMEN,
2003
            self::ZAMBIA,
2004
            self::ZIMBABWE,
2005
        ];
2006
    }
2007
2008
    /**
2009
     * Validate country code
2010
     *
2011
     * @param string $code
2012
     *
2013
     * @return void
2014
     *
2015
     * @throws \InvalidArgumentException
2016
     */
2017
    public static function validateCode(string $code): void
2018
    {
2019
        if (in_array($code, self::all()) === false) {
2020
            throw new InvalidArgumentException('Unknown country "' . $code . '".');
2021
        }
2022
    }
2023
}
2024