PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / moneyphp / money / src / Currencies / ISOCurrencies.php
give / vendor / moneyphp / money / src / Currencies Last commit date
AggregateCurrencies.php 4 years ago BitcoinCurrencies.php 4 years ago CachedCurrencies.php 4 years ago CurrencyList.php 4 years ago ISOCurrencies.php 4 years ago
ISOCurrencies.php
104 lines
1 <?php
2
3 namespace Money\Currencies;
4
5 use Money\Currencies;
6 use Money\Currency;
7 use Money\Exception\UnknownCurrencyException;
8
9 /**
10 * List of supported ISO 4217 currency codes and names.
11 *
12 * @author Mathias Verraes
13 */
14 final class ISOCurrencies implements Currencies
15 {
16 /**
17 * Map of known currencies indexed by code.
18 *
19 * @var array
20 */
21 private static $currencies;
22
23 /**
24 * {@inheritdoc}
25 */
26 public function contains(Currency $currency)
27 {
28 return isset($this->getCurrencies()[$currency->getCode()]);
29 }
30
31 /**
32 * {@inheritdoc}
33 */
34 public function subunitFor(Currency $currency)
35 {
36 if (!$this->contains($currency)) {
37 throw new UnknownCurrencyException('Cannot find ISO currency '.$currency->getCode());
38 }
39
40 return $this->getCurrencies()[$currency->getCode()]['minorUnit'];
41 }
42
43 /**
44 * Returns the numeric code for a currency.
45 *
46 * @param Currency $currency
47 *
48 * @return int
49 *
50 * @throws UnknownCurrencyException If currency is not available in the current context
51 */
52 public function numericCodeFor(Currency $currency)
53 {
54 if (!$this->contains($currency)) {
55 throw new UnknownCurrencyException('Cannot find ISO currency '.$currency->getCode());
56 }
57
58 return $this->getCurrencies()[$currency->getCode()]['numericCode'];
59 }
60
61 /**
62 * @return \Traversable
63 */
64 public function getIterator()
65 {
66 return new \ArrayIterator(
67 array_map(
68 function ($code) {
69 return new Currency($code);
70 },
71 array_keys($this->getCurrencies())
72 )
73 );
74 }
75
76 /**
77 * Returns a map of known currencies indexed by code.
78 *
79 * @return array
80 */
81 private function getCurrencies()
82 {
83 if (null === self::$currencies) {
84 self::$currencies = $this->loadCurrencies();
85 }
86
87 return self::$currencies;
88 }
89
90 /**
91 * @return array
92 */
93 private function loadCurrencies()
94 {
95 $file = __DIR__.'/../../resources/currency.php';
96
97 if (file_exists($file)) {
98 return require $file;
99 }
100
101 throw new \RuntimeException('Failed to load currency ISO codes.');
102 }
103 }
104