Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
| Total | |
100.00% |
336 / 336 |
|
100.00% |
7 / 7 |
CRAP | |
100.00% |
1 / 1 |
| Currency | |
100.00% |
336 / 336 |
|
100.00% |
7 / 7 |
10 | |
100.00% |
1 / 1 |
| label | |
100.00% |
158 / 158 |
|
100.00% |
1 / 1 |
1 | |||
| symbol | |
100.00% |
158 / 158 |
|
100.00% |
1 / 1 |
1 | |||
| decimalPlaces | |
100.00% |
7 / 7 |
|
100.00% |
1 / 1 |
1 | |||
| labelList | |
100.00% |
1 / 1 |
|
100.00% |
1 / 1 |
1 | |||
| toArray | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
2 | |||
| toArrayWithLabels | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
2 | |||
| toArrayWithSymbols | |
100.00% |
4 / 4 |
|
100.00% |
1 / 1 |
2 | |||
| 1 | <?php |
| 2 | |
| 3 | declare(strict_types=1); |
| 4 | |
| 5 | namespace DevToolbelt\Enums\Locale; |
| 6 | |
| 7 | use DevToolbelt\Enums\EnumInterface; |
| 8 | |
| 9 | enum Currency: string implements EnumInterface |
| 10 | { |
| 11 | case AED = 'AED'; |
| 12 | case AFN = 'AFN'; |
| 13 | case ALL = 'ALL'; |
| 14 | case AMD = 'AMD'; |
| 15 | case ANG = 'ANG'; |
| 16 | case AOA = 'AOA'; |
| 17 | case ARS = 'ARS'; |
| 18 | case AUD = 'AUD'; |
| 19 | case AWG = 'AWG'; |
| 20 | case AZN = 'AZN'; |
| 21 | case BAM = 'BAM'; |
| 22 | case BBD = 'BBD'; |
| 23 | case BDT = 'BDT'; |
| 24 | case BGN = 'BGN'; |
| 25 | case BHD = 'BHD'; |
| 26 | case BIF = 'BIF'; |
| 27 | case BMD = 'BMD'; |
| 28 | case BND = 'BND'; |
| 29 | case BOB = 'BOB'; |
| 30 | case BRL = 'BRL'; |
| 31 | case BSD = 'BSD'; |
| 32 | case BTN = 'BTN'; |
| 33 | case BWP = 'BWP'; |
| 34 | case BYN = 'BYN'; |
| 35 | case BZD = 'BZD'; |
| 36 | case CAD = 'CAD'; |
| 37 | case CDF = 'CDF'; |
| 38 | case CHF = 'CHF'; |
| 39 | case CLP = 'CLP'; |
| 40 | case CNY = 'CNY'; |
| 41 | case COP = 'COP'; |
| 42 | case CRC = 'CRC'; |
| 43 | case CUP = 'CUP'; |
| 44 | case CVE = 'CVE'; |
| 45 | case CZK = 'CZK'; |
| 46 | case DJF = 'DJF'; |
| 47 | case DKK = 'DKK'; |
| 48 | case DOP = 'DOP'; |
| 49 | case DZD = 'DZD'; |
| 50 | case EGP = 'EGP'; |
| 51 | case ERN = 'ERN'; |
| 52 | case ETB = 'ETB'; |
| 53 | case EUR = 'EUR'; |
| 54 | case FJD = 'FJD'; |
| 55 | case FKP = 'FKP'; |
| 56 | case GBP = 'GBP'; |
| 57 | case GEL = 'GEL'; |
| 58 | case GHS = 'GHS'; |
| 59 | case GIP = 'GIP'; |
| 60 | case GMD = 'GMD'; |
| 61 | case GNF = 'GNF'; |
| 62 | case GTQ = 'GTQ'; |
| 63 | case GYD = 'GYD'; |
| 64 | case HKD = 'HKD'; |
| 65 | case HNL = 'HNL'; |
| 66 | case HRK = 'HRK'; |
| 67 | case HTG = 'HTG'; |
| 68 | case HUF = 'HUF'; |
| 69 | case IDR = 'IDR'; |
| 70 | case ILS = 'ILS'; |
| 71 | case INR = 'INR'; |
| 72 | case IQD = 'IQD'; |
| 73 | case IRR = 'IRR'; |
| 74 | case ISK = 'ISK'; |
| 75 | case JMD = 'JMD'; |
| 76 | case JOD = 'JOD'; |
| 77 | case JPY = 'JPY'; |
| 78 | case KES = 'KES'; |
| 79 | case KGS = 'KGS'; |
| 80 | case KHR = 'KHR'; |
| 81 | case KMF = 'KMF'; |
| 82 | case KPW = 'KPW'; |
| 83 | case KRW = 'KRW'; |
| 84 | case KWD = 'KWD'; |
| 85 | case KYD = 'KYD'; |
| 86 | case KZT = 'KZT'; |
| 87 | case LAK = 'LAK'; |
| 88 | case LBP = 'LBP'; |
| 89 | case LKR = 'LKR'; |
| 90 | case LRD = 'LRD'; |
| 91 | case LSL = 'LSL'; |
| 92 | case LYD = 'LYD'; |
| 93 | case MAD = 'MAD'; |
| 94 | case MDL = 'MDL'; |
| 95 | case MGA = 'MGA'; |
| 96 | case MKD = 'MKD'; |
| 97 | case MMK = 'MMK'; |
| 98 | case MNT = 'MNT'; |
| 99 | case MOP = 'MOP'; |
| 100 | case MRU = 'MRU'; |
| 101 | case MUR = 'MUR'; |
| 102 | case MVR = 'MVR'; |
| 103 | case MWK = 'MWK'; |
| 104 | case MXN = 'MXN'; |
| 105 | case MYR = 'MYR'; |
| 106 | case MZN = 'MZN'; |
| 107 | case NAD = 'NAD'; |
| 108 | case NGN = 'NGN'; |
| 109 | case NIO = 'NIO'; |
| 110 | case NOK = 'NOK'; |
| 111 | case NPR = 'NPR'; |
| 112 | case NZD = 'NZD'; |
| 113 | case OMR = 'OMR'; |
| 114 | case PAB = 'PAB'; |
| 115 | case PEN = 'PEN'; |
| 116 | case PGK = 'PGK'; |
| 117 | case PHP = 'PHP'; |
| 118 | case PKR = 'PKR'; |
| 119 | case PLN = 'PLN'; |
| 120 | case PYG = 'PYG'; |
| 121 | case QAR = 'QAR'; |
| 122 | case RON = 'RON'; |
| 123 | case RSD = 'RSD'; |
| 124 | case RUB = 'RUB'; |
| 125 | case RWF = 'RWF'; |
| 126 | case SAR = 'SAR'; |
| 127 | case SBD = 'SBD'; |
| 128 | case SCR = 'SCR'; |
| 129 | case SDG = 'SDG'; |
| 130 | case SEK = 'SEK'; |
| 131 | case SGD = 'SGD'; |
| 132 | case SHP = 'SHP'; |
| 133 | case SLE = 'SLE'; |
| 134 | case SOS = 'SOS'; |
| 135 | case SRD = 'SRD'; |
| 136 | case SSP = 'SSP'; |
| 137 | case STN = 'STN'; |
| 138 | case SVC = 'SVC'; |
| 139 | case SYP = 'SYP'; |
| 140 | case SZL = 'SZL'; |
| 141 | case THB = 'THB'; |
| 142 | case TJS = 'TJS'; |
| 143 | case TMT = 'TMT'; |
| 144 | case TND = 'TND'; |
| 145 | case TOP = 'TOP'; |
| 146 | case TRY = 'TRY'; |
| 147 | case TTD = 'TTD'; |
| 148 | case TWD = 'TWD'; |
| 149 | case TZS = 'TZS'; |
| 150 | case UAH = 'UAH'; |
| 151 | case UGX = 'UGX'; |
| 152 | case USD = 'USD'; |
| 153 | case UYU = 'UYU'; |
| 154 | case UZS = 'UZS'; |
| 155 | case VES = 'VES'; |
| 156 | case VND = 'VND'; |
| 157 | case VUV = 'VUV'; |
| 158 | case WST = 'WST'; |
| 159 | case XAF = 'XAF'; |
| 160 | case XCD = 'XCD'; |
| 161 | case XOF = 'XOF'; |
| 162 | case XPF = 'XPF'; |
| 163 | case YER = 'YER'; |
| 164 | case ZAR = 'ZAR'; |
| 165 | case ZMW = 'ZMW'; |
| 166 | case ZWL = 'ZWL'; |
| 167 | |
| 168 | public function label(): string |
| 169 | { |
| 170 | return match ($this) { |
| 171 | self::AED => 'United Arab Emirates Dirham', |
| 172 | self::AFN => 'Afghan Afghani', |
| 173 | self::ALL => 'Albanian Lek', |
| 174 | self::AMD => 'Armenian Dram', |
| 175 | self::ANG => 'Netherlands Antillean Guilder', |
| 176 | self::AOA => 'Angolan Kwanza', |
| 177 | self::ARS => 'Argentine Peso', |
| 178 | self::AUD => 'Australian Dollar', |
| 179 | self::AWG => 'Aruban Florin', |
| 180 | self::AZN => 'Azerbaijani Manat', |
| 181 | self::BAM => 'Bosnia-Herzegovina Convertible Mark', |
| 182 | self::BBD => 'Barbadian Dollar', |
| 183 | self::BDT => 'Bangladeshi Taka', |
| 184 | self::BGN => 'Bulgarian Lev', |
| 185 | self::BHD => 'Bahraini Dinar', |
| 186 | self::BIF => 'Burundian Franc', |
| 187 | self::BMD => 'Bermudan Dollar', |
| 188 | self::BND => 'Brunei Dollar', |
| 189 | self::BOB => 'Bolivian Boliviano', |
| 190 | self::BRL => 'Brazilian Real', |
| 191 | self::BSD => 'Bahamian Dollar', |
| 192 | self::BTN => 'Bhutanese Ngultrum', |
| 193 | self::BWP => 'Botswanan Pula', |
| 194 | self::BYN => 'Belarusian Ruble', |
| 195 | self::BZD => 'Belize Dollar', |
| 196 | self::CAD => 'Canadian Dollar', |
| 197 | self::CDF => 'Congolese Franc', |
| 198 | self::CHF => 'Swiss Franc', |
| 199 | self::CLP => 'Chilean Peso', |
| 200 | self::CNY => 'Chinese Yuan', |
| 201 | self::COP => 'Colombian Peso', |
| 202 | self::CRC => 'Costa Rican Colón', |
| 203 | self::CUP => 'Cuban Peso', |
| 204 | self::CVE => 'Cape Verdean Escudo', |
| 205 | self::CZK => 'Czech Koruna', |
| 206 | self::DJF => 'Djiboutian Franc', |
| 207 | self::DKK => 'Danish Krone', |
| 208 | self::DOP => 'Dominican Peso', |
| 209 | self::DZD => 'Algerian Dinar', |
| 210 | self::EGP => 'Egyptian Pound', |
| 211 | self::ERN => 'Eritrean Nakfa', |
| 212 | self::ETB => 'Ethiopian Birr', |
| 213 | self::EUR => 'Euro', |
| 214 | self::FJD => 'Fijian Dollar', |
| 215 | self::FKP => 'Falkland Islands Pound', |
| 216 | self::GBP => 'British Pound', |
| 217 | self::GEL => 'Georgian Lari', |
| 218 | self::GHS => 'Ghanaian Cedi', |
| 219 | self::GIP => 'Gibraltar Pound', |
| 220 | self::GMD => 'Gambian Dalasi', |
| 221 | self::GNF => 'Guinean Franc', |
| 222 | self::GTQ => 'Guatemalan Quetzal', |
| 223 | self::GYD => 'Guyanaese Dollar', |
| 224 | self::HKD => 'Hong Kong Dollar', |
| 225 | self::HNL => 'Honduran Lempira', |
| 226 | self::HRK => 'Croatian Kuna', |
| 227 | self::HTG => 'Haitian Gourde', |
| 228 | self::HUF => 'Hungarian Forint', |
| 229 | self::IDR => 'Indonesian Rupiah', |
| 230 | self::ILS => 'Israeli New Shekel', |
| 231 | self::INR => 'Indian Rupee', |
| 232 | self::IQD => 'Iraqi Dinar', |
| 233 | self::IRR => 'Iranian Rial', |
| 234 | self::ISK => 'Icelandic Króna', |
| 235 | self::JMD => 'Jamaican Dollar', |
| 236 | self::JOD => 'Jordanian Dinar', |
| 237 | self::JPY => 'Japanese Yen', |
| 238 | self::KES => 'Kenyan Shilling', |
| 239 | self::KGS => 'Kyrgystani Som', |
| 240 | self::KHR => 'Cambodian Riel', |
| 241 | self::KMF => 'Comorian Franc', |
| 242 | self::KPW => 'North Korean Won', |
| 243 | self::KRW => 'South Korean Won', |
| 244 | self::KWD => 'Kuwaiti Dinar', |
| 245 | self::KYD => 'Cayman Islands Dollar', |
| 246 | self::KZT => 'Kazakhstani Tenge', |
| 247 | self::LAK => 'Laotian Kip', |
| 248 | self::LBP => 'Lebanese Pound', |
| 249 | self::LKR => 'Sri Lankan Rupee', |
| 250 | self::LRD => 'Liberian Dollar', |
| 251 | self::LSL => 'Lesotho Loti', |
| 252 | self::LYD => 'Libyan Dinar', |
| 253 | self::MAD => 'Moroccan Dirham', |
| 254 | self::MDL => 'Moldovan Leu', |
| 255 | self::MGA => 'Malagasy Ariary', |
| 256 | self::MKD => 'Macedonian Denar', |
| 257 | self::MMK => 'Myanma Kyat', |
| 258 | self::MNT => 'Mongolian Tugrik', |
| 259 | self::MOP => 'Macanese Pataca', |
| 260 | self::MRU => 'Mauritanian Ouguiya', |
| 261 | self::MUR => 'Mauritian Rupee', |
| 262 | self::MVR => 'Maldivian Rufiyaa', |
| 263 | self::MWK => 'Malawian Kwacha', |
| 264 | self::MXN => 'Mexican Peso', |
| 265 | self::MYR => 'Malaysian Ringgit', |
| 266 | self::MZN => 'Mozambican Metical', |
| 267 | self::NAD => 'Namibian Dollar', |
| 268 | self::NGN => 'Nigerian Naira', |
| 269 | self::NIO => 'Nicaraguan Córdoba', |
| 270 | self::NOK => 'Norwegian Krone', |
| 271 | self::NPR => 'Nepalese Rupee', |
| 272 | self::NZD => 'New Zealand Dollar', |
| 273 | self::OMR => 'Omani Rial', |
| 274 | self::PAB => 'Panamanian Balboa', |
| 275 | self::PEN => 'Peruvian Sol', |
| 276 | self::PGK => 'Papua New Guinean Kina', |
| 277 | self::PHP => 'Philippine Peso', |
| 278 | self::PKR => 'Pakistani Rupee', |
| 279 | self::PLN => 'Polish Zloty', |
| 280 | self::PYG => 'Paraguayan Guarani', |
| 281 | self::QAR => 'Qatari Rial', |
| 282 | self::RON => 'Romanian Leu', |
| 283 | self::RSD => 'Serbian Dinar', |
| 284 | self::RUB => 'Russian Ruble', |
| 285 | self::RWF => 'Rwandan Franc', |
| 286 | self::SAR => 'Saudi Riyal', |
| 287 | self::SBD => 'Solomon Islands Dollar', |
| 288 | self::SCR => 'Seychellois Rupee', |
| 289 | self::SDG => 'Sudanese Pound', |
| 290 | self::SEK => 'Swedish Krona', |
| 291 | self::SGD => 'Singapore Dollar', |
| 292 | self::SHP => 'Saint Helena Pound', |
| 293 | self::SLE => 'Sierra Leonean Leone', |
| 294 | self::SOS => 'Somali Shilling', |
| 295 | self::SRD => 'Surinamese Dollar', |
| 296 | self::SSP => 'South Sudanese Pound', |
| 297 | self::STN => 'São Tomé and Príncipe Dobra', |
| 298 | self::SVC => 'Salvadoran Colón', |
| 299 | self::SYP => 'Syrian Pound', |
| 300 | self::SZL => 'Swazi Lilangeni', |
| 301 | self::THB => 'Thai Baht', |
| 302 | self::TJS => 'Tajikistani Somoni', |
| 303 | self::TMT => 'Turkmenistani Manat', |
| 304 | self::TND => 'Tunisian Dinar', |
| 305 | self::TOP => 'Tongan Paʻanga', |
| 306 | self::TRY => 'Turkish Lira', |
| 307 | self::TTD => 'Trinidad and Tobago Dollar', |
| 308 | self::TWD => 'New Taiwan Dollar', |
| 309 | self::TZS => 'Tanzanian Shilling', |
| 310 | self::UAH => 'Ukrainian Hryvnia', |
| 311 | self::UGX => 'Ugandan Shilling', |
| 312 | self::USD => 'United States Dollar', |
| 313 | self::UYU => 'Uruguayan Peso', |
| 314 | self::UZS => 'Uzbekistan Som', |
| 315 | self::VES => 'Venezuelan Bolívar', |
| 316 | self::VND => 'Vietnamese Dong', |
| 317 | self::VUV => 'Vanuatu Vatu', |
| 318 | self::WST => 'Samoan Tala', |
| 319 | self::XAF => 'CFA Franc BEAC', |
| 320 | self::XCD => 'East Caribbean Dollar', |
| 321 | self::XOF => 'CFA Franc BCEAO', |
| 322 | self::XPF => 'CFP Franc', |
| 323 | self::YER => 'Yemeni Rial', |
| 324 | self::ZAR => 'South African Rand', |
| 325 | self::ZMW => 'Zambian Kwacha', |
| 326 | self::ZWL => 'Zimbabwean Dollar', |
| 327 | }; |
| 328 | } |
| 329 | |
| 330 | public function symbol(): string |
| 331 | { |
| 332 | return match ($this) { |
| 333 | self::AED => 'د.إ', |
| 334 | self::AFN => '؋', |
| 335 | self::ALL => 'L', |
| 336 | self::AMD => '֏', |
| 337 | self::ANG => 'ƒ', |
| 338 | self::AOA => 'Kz', |
| 339 | self::ARS => '$', |
| 340 | self::AUD => 'A$', |
| 341 | self::AWG => 'ƒ', |
| 342 | self::AZN => '₼', |
| 343 | self::BAM => 'KM', |
| 344 | self::BBD => 'Bds$', |
| 345 | self::BDT => '৳', |
| 346 | self::BGN => 'лв', |
| 347 | self::BHD => '.د.ب', |
| 348 | self::BIF => 'FBu', |
| 349 | self::BMD => '$', |
| 350 | self::BND => 'B$', |
| 351 | self::BOB => 'Bs.', |
| 352 | self::BRL => 'R$', |
| 353 | self::BSD => 'B$', |
| 354 | self::BTN => 'Nu.', |
| 355 | self::BWP => 'P', |
| 356 | self::BYN => 'Br', |
| 357 | self::BZD => 'BZ$', |
| 358 | self::CAD => 'C$', |
| 359 | self::CDF => 'FC', |
| 360 | self::CHF => 'CHF', |
| 361 | self::CLP => '$', |
| 362 | self::CNY => '¥', |
| 363 | self::COP => '$', |
| 364 | self::CRC => '₡', |
| 365 | self::CUP => '₱', |
| 366 | self::CVE => '$', |
| 367 | self::CZK => 'Kč', |
| 368 | self::DJF => 'Fdj', |
| 369 | self::DKK => 'kr', |
| 370 | self::DOP => 'RD$', |
| 371 | self::DZD => 'د.ج', |
| 372 | self::EGP => 'E£', |
| 373 | self::ERN => 'Nfk', |
| 374 | self::ETB => 'Br', |
| 375 | self::EUR => '€', |
| 376 | self::FJD => 'FJ$', |
| 377 | self::FKP => '£', |
| 378 | self::GBP => '£', |
| 379 | self::GEL => '₾', |
| 380 | self::GHS => 'GH₵', |
| 381 | self::GIP => '£', |
| 382 | self::GMD => 'D', |
| 383 | self::GNF => 'FG', |
| 384 | self::GTQ => 'Q', |
| 385 | self::GYD => 'G$', |
| 386 | self::HKD => 'HK$', |
| 387 | self::HNL => 'L', |
| 388 | self::HRK => 'kn', |
| 389 | self::HTG => 'G', |
| 390 | self::HUF => 'Ft', |
| 391 | self::IDR => 'Rp', |
| 392 | self::ILS => '₪', |
| 393 | self::INR => '₹', |
| 394 | self::IQD => 'ع.د', |
| 395 | self::IRR => '﷼', |
| 396 | self::ISK => 'kr', |
| 397 | self::JMD => 'J$', |
| 398 | self::JOD => 'د.ا', |
| 399 | self::JPY => '¥', |
| 400 | self::KES => 'KSh', |
| 401 | self::KGS => 'лв', |
| 402 | self::KHR => '៛', |
| 403 | self::KMF => 'CF', |
| 404 | self::KPW => '₩', |
| 405 | self::KRW => '₩', |
| 406 | self::KWD => 'د.ك', |
| 407 | self::KYD => 'CI$', |
| 408 | self::KZT => '₸', |
| 409 | self::LAK => '₭', |
| 410 | self::LBP => 'ل.ل', |
| 411 | self::LKR => 'Rs', |
| 412 | self::LRD => 'L$', |
| 413 | self::LSL => 'M', |
| 414 | self::LYD => 'ل.د', |
| 415 | self::MAD => 'د.م.', |
| 416 | self::MDL => 'L', |
| 417 | self::MGA => 'Ar', |
| 418 | self::MKD => 'ден', |
| 419 | self::MMK => 'K', |
| 420 | self::MNT => '₮', |
| 421 | self::MOP => 'MOP$', |
| 422 | self::MRU => 'UM', |
| 423 | self::MUR => '₨', |
| 424 | self::MVR => 'Rf', |
| 425 | self::MWK => 'MK', |
| 426 | self::MXN => '$', |
| 427 | self::MYR => 'RM', |
| 428 | self::MZN => 'MT', |
| 429 | self::NAD => 'N$', |
| 430 | self::NGN => '₦', |
| 431 | self::NIO => 'C$', |
| 432 | self::NOK => 'kr', |
| 433 | self::NPR => '₨', |
| 434 | self::NZD => 'NZ$', |
| 435 | self::OMR => 'ر.ع.', |
| 436 | self::PAB => 'B/.', |
| 437 | self::PEN => 'S/', |
| 438 | self::PGK => 'K', |
| 439 | self::PHP => '₱', |
| 440 | self::PKR => '₨', |
| 441 | self::PLN => 'zł', |
| 442 | self::PYG => '₲', |
| 443 | self::QAR => 'ر.ق', |
| 444 | self::RON => 'lei', |
| 445 | self::RSD => 'дин.', |
| 446 | self::RUB => '₽', |
| 447 | self::RWF => 'FRw', |
| 448 | self::SAR => 'ر.س', |
| 449 | self::SBD => 'SI$', |
| 450 | self::SCR => '₨', |
| 451 | self::SDG => 'ج.س.', |
| 452 | self::SEK => 'kr', |
| 453 | self::SGD => 'S$', |
| 454 | self::SHP => '£', |
| 455 | self::SLE => 'Le', |
| 456 | self::SOS => 'S', |
| 457 | self::SRD => '$', |
| 458 | self::SSP => '£', |
| 459 | self::STN => 'Db', |
| 460 | self::SVC => '$', |
| 461 | self::SYP => '£S', |
| 462 | self::SZL => 'E', |
| 463 | self::THB => '฿', |
| 464 | self::TJS => 'SM', |
| 465 | self::TMT => 'T', |
| 466 | self::TND => 'د.ت', |
| 467 | self::TOP => 'T$', |
| 468 | self::TRY => '₺', |
| 469 | self::TTD => 'TT$', |
| 470 | self::TWD => 'NT$', |
| 471 | self::TZS => 'TSh', |
| 472 | self::UAH => '₴', |
| 473 | self::UGX => 'USh', |
| 474 | self::USD => '$', |
| 475 | self::UYU => '$U', |
| 476 | self::UZS => 'лв', |
| 477 | self::VES => 'Bs.', |
| 478 | self::VND => '₫', |
| 479 | self::VUV => 'VT', |
| 480 | self::WST => 'WS$', |
| 481 | self::XAF => 'FCFA', |
| 482 | self::XCD => 'EC$', |
| 483 | self::XOF => 'CFA', |
| 484 | self::XPF => '₣', |
| 485 | self::YER => '﷼', |
| 486 | self::ZAR => 'R', |
| 487 | self::ZMW => 'ZK', |
| 488 | self::ZWL => 'Z$', |
| 489 | }; |
| 490 | } |
| 491 | |
| 492 | public function decimalPlaces(): int |
| 493 | { |
| 494 | return match ($this) { |
| 495 | self::BHD, self::IQD, self::JOD, self::KWD, self::LYD, self::OMR, self::TND => 3, |
| 496 | self::BIF, self::CLP, self::DJF, self::GNF, self::ISK, self::JPY, self::KMF, |
| 497 | self::KRW, self::PYG, self::RWF, self::UGX, self::VND, self::VUV, self::XAF, |
| 498 | self::XOF, self::XPF => 0, |
| 499 | default => 2, |
| 500 | }; |
| 501 | } |
| 502 | |
| 503 | /** |
| 504 | * @return string[] |
| 505 | */ |
| 506 | public function labelList(): array |
| 507 | { |
| 508 | return array_map(fn (self $case) => $case->label(), self::cases()); |
| 509 | } |
| 510 | |
| 511 | /** |
| 512 | * @return array<string, string> |
| 513 | */ |
| 514 | public static function toArray(): array |
| 515 | { |
| 516 | $result = []; |
| 517 | |
| 518 | foreach (self::cases() as $currency) { |
| 519 | $result[$currency->value] = $currency->value; |
| 520 | } |
| 521 | |
| 522 | return $result; |
| 523 | } |
| 524 | |
| 525 | /** |
| 526 | * @return array<string, string> |
| 527 | */ |
| 528 | public static function toArrayWithLabels(): array |
| 529 | { |
| 530 | $result = []; |
| 531 | |
| 532 | foreach (self::cases() as $currency) { |
| 533 | $result[$currency->value] = $currency->label(); |
| 534 | } |
| 535 | |
| 536 | return $result; |
| 537 | } |
| 538 | |
| 539 | /** |
| 540 | * @return array<string, string> |
| 541 | */ |
| 542 | public static function toArrayWithSymbols(): array |
| 543 | { |
| 544 | $result = []; |
| 545 | |
| 546 | foreach (self::cases() as $currency) { |
| 547 | $result[$currency->value] = $currency->symbol(); |
| 548 | } |
| 549 | |
| 550 | return $result; |
| 551 | } |
| 552 | } |