CurrencyCode.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. <?php
  2. /*
  3. * Copyright (c) Alexandre Gomes Gaigalas <alganet@gmail.com>
  4. * SPDX-License-Identifier: MIT
  5. */
  6. declare(strict_types=1);
  7. namespace Respect\Validation\Rules;
  8. /**
  9. * Validates currency codes in ISO 4217.
  10. *
  11. * @author Henrique Moody <henriquemoody@gmail.com>
  12. * @author Justin Hook <justinhook88@yahoo.co.uk>
  13. * @author Tim Strijdhorst <tstrijdhorst@users.noreply.github.com>
  14. * @author William Espindola <oi@williamespindola.com.br>
  15. */
  16. final class CurrencyCode extends AbstractSearcher
  17. {
  18. /**
  19. * @see http://www.currency-iso.org/en/home/tables/table-a1.html
  20. *
  21. * {@inheritDoc}
  22. */
  23. protected function getDataSource($input = null): array
  24. {
  25. return [
  26. 'AED', // UAE Dirham
  27. 'AFN', // Afghani
  28. 'ALL', // Lek
  29. 'AMD', // Armenian Dram
  30. 'ANG', // Netherlands Antillean Guilder
  31. 'AOA', // Kwanza
  32. 'ARS', // Argentine Peso
  33. 'AUD', // Australian Dollar
  34. 'AWG', // Aruban Florin
  35. 'AZN', // Azerbaijan Manat
  36. 'BAM', // Convertible Mark
  37. 'BBD', // Barbados Dollar
  38. 'BDT', // Taka
  39. 'BGN', // Bulgarian Lev
  40. 'BHD', // Bahraini Dinar
  41. 'BIF', // Burundi Franc
  42. 'BMD', // Bermudian Dollar
  43. 'BND', // Brunei Dollar
  44. 'BOB', // Boliviano
  45. 'BOV', // Mvdol
  46. 'BRL', // Brazilian Real
  47. 'BSD', // Bahamian Dollar
  48. 'BTN', // Ngultrum
  49. 'BWP', // Pula
  50. 'BYN', // Belarusian Ruble
  51. 'BZD', // Belize Dollar
  52. 'CAD', // Canadian Dollar
  53. 'CDF', // Congolese Franc
  54. 'CHE', // WIR Euro
  55. 'CHF', // Swiss Franc
  56. 'CHW', // WIR Franc
  57. 'CLF', // Unidad de Fomento
  58. 'CLP', // Chilean Peso
  59. 'CNY', // Yuan Renminbi
  60. 'COP', // Colombian Peso
  61. 'COU', // Unidad de Valor Real
  62. 'CRC', // Costa Rican Colon
  63. 'CUC', // Peso Convertible
  64. 'CUP', // Cuban Peso
  65. 'CVE', // Cabo Verde Escudo
  66. 'CZK', // Czech Koruna
  67. 'DJF', // Djibouti Franc
  68. 'DKK', // Danish Krone
  69. 'DOP', // Dominican Peso
  70. 'DZD', // Algerian Dinar
  71. 'EGP', // Egyptian Pound
  72. 'ERN', // Nakfa
  73. 'ETB', // Ethiopian Birr
  74. 'EUR', // Euro
  75. 'FJD', // Fiji Dollar
  76. 'FKP', // Falkland Islands Pound
  77. 'GBP', // Pound Sterling
  78. 'GEL', // Lari
  79. 'GHS', // Ghana Cedi
  80. 'GIP', // Gibraltar Pound
  81. 'GMD', // Dalasi
  82. 'GNF', // Guinean Franc
  83. 'GTQ', // Quetzal
  84. 'GYD', // Guyana Dollar
  85. 'HKD', // Hong Kong Dollar
  86. 'HNL', // Lempira
  87. 'HTG', // Gourde
  88. 'HUF', // Forint
  89. 'IDR', // Rupiah
  90. 'ILS', // New Israeli Sheqel
  91. 'INR', // Indian Rupee
  92. 'IQD', // Iraqi Dinar
  93. 'IRR', // Iranian Rial
  94. 'ISK', // Iceland Krona
  95. 'JMD', // Jamaican Dollar
  96. 'JOD', // Jordanian Dinar
  97. 'JPY', // Yen
  98. 'KES', // Kenyan Shilling
  99. 'KGS', // Som
  100. 'KHR', // Riel
  101. 'KMF', // Comorian Franc
  102. 'KPW', // North Korean Won
  103. 'KRW', // Won
  104. 'KWD', // Kuwaiti Dinar
  105. 'KYD', // Cayman Islands Dollar
  106. 'KZT', // Tenge
  107. 'LAK', // Lao Kip
  108. 'LBP', // Lebanese Pound
  109. 'LKR', // Sri Lanka Rupee
  110. 'LRD', // Liberian Dollar
  111. 'LSL', // Loti
  112. 'LYD', // Libyan Dinar
  113. 'MAD', // Moroccan Dirham
  114. 'MDL', // Moldovan Leu
  115. 'MGA', // Malagasy Ariary
  116. 'MKD', // Denar
  117. 'MMK', // Kyat
  118. 'MNT', // Tugrik
  119. 'MOP', // Pataca
  120. 'MRU', // Ouguiya
  121. 'MUR', // Mauritius Rupee
  122. 'MVR', // Rufiyaa
  123. 'MWK', // Malawi Kwacha
  124. 'MXN', // Mexican Peso
  125. 'MXV', // Mexican Unidad de Inversion (UDI)
  126. 'MYR', // Malaysian Ringgit
  127. 'MZN', // Mozambique Metical
  128. 'NAD', // Namibia Dollar
  129. 'NGN', // Naira
  130. 'NIO', // Cordoba Oro
  131. 'NOK', // Norwegian Krone
  132. 'NPR', // Nepalese Rupee
  133. 'NZD', // New Zealand Dollar
  134. 'OMR', // Rial Omani
  135. 'PAB', // Balboa
  136. 'PEN', // Sol
  137. 'PGK', // Kina
  138. 'PHP', // Philippine Peso
  139. 'PKR', // Pakistan Rupee
  140. 'PLN', // Zloty
  141. 'PYG', // Guarani
  142. 'QAR', // Qatari Rial
  143. 'RON', // Romanian Leu
  144. 'RSD', // Serbian Dinar
  145. 'RUB', // Russian Ruble
  146. 'RWF', // Rwanda Franc
  147. 'SAR', // Saudi Riyal
  148. 'SBD', // Solomon Islands Dollar
  149. 'SCR', // Seychelles Rupee
  150. 'SDG', // Sudanese Pound
  151. 'SEK', // Swedish Krona
  152. 'SGD', // Singapore Dollar
  153. 'SHP', // Saint Helena Pound
  154. 'SLE', // Leone
  155. 'SLL', // Leone
  156. 'SOS', // Somali Shilling
  157. 'SRD', // Surinam Dollar
  158. 'SSP', // South Sudanese Pound
  159. 'STN', // Dobra
  160. 'SVC', // El Salvador Colon
  161. 'SYP', // Syrian Pound
  162. 'SZL', // Lilangeni
  163. 'THB', // Baht
  164. 'TJS', // Somoni
  165. 'TMT', // Turkmenistan New Manat
  166. 'TND', // Tunisian Dinar
  167. 'TOP', // Pa’anga
  168. 'TRY', // Turkish Lira
  169. 'TTD', // Trinidad and Tobago Dollar
  170. 'TWD', // New Taiwan Dollar
  171. 'TZS', // Tanzanian Shilling
  172. 'UAH', // Hryvnia
  173. 'UGX', // Uganda Shilling
  174. 'USD', // US Dollar
  175. 'USN', // US Dollar (Next day)
  176. 'UYI', // Uruguay Peso en Unidades Indexadas (UI)
  177. 'UYU', // Peso Uruguayo
  178. 'UYW', // Unidad Previsional
  179. 'UZS', // Uzbekistan Sum
  180. 'VED', // Bolívar Soberano
  181. 'VES', // Bolívar Soberano
  182. 'VND', // Dong
  183. 'VUV', // Vatu
  184. 'WST', // Tala
  185. 'XAF', // CFA Franc BEAC
  186. 'XAG', // Silver
  187. 'XAU', // Gold
  188. 'XBA', // Bond Markets Unit European Composite Unit (EURCO)
  189. 'XBB', // Bond Markets Unit European Monetary Unit (E.M.U.-6)
  190. 'XBC', // Bond Markets Unit European Unit of Account 9 (E.U.A.-9)
  191. 'XBD', // Bond Markets Unit European Unit of Account 17 (E.U.A.-17)
  192. 'XCD', // East Caribbean Dollar
  193. 'XDR', // SDR (Special Drawing Right)
  194. 'XOF', // CFA Franc BCEAO
  195. 'XPD', // Palladium
  196. 'XPF', // CFP Franc
  197. 'XPT', // Platinum
  198. 'XSU', // Sucre
  199. 'XTS', // Codes specifically reserved for testing purposes
  200. 'XUA', // ADB Unit of Account
  201. 'XXX', // The codes assigned for transactions where no currency is involved
  202. 'YER', // Yemeni Rial
  203. 'ZAR', // Rand
  204. 'ZMW', // Zambian Kwacha
  205. 'ZWL', // Zimbabwe Dollar
  206. ];
  207. }
  208. }