PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 1 year ago BitcoinCurrencies.php 1 year ago CachedCurrencies.php 1 year ago CurrencyList.php 1 year ago ISOCurrencies.php 1 year ago
ISOCurrencies.php
103 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 * @return int
47 *
48 * @throws UnknownCurrencyException If currency is not available in the current context
49 */
50 public function numericCodeFor(Currency $currency)
51 {
52 if (!$this->contains($currency)) {
53 throw new UnknownCurrencyException('Cannot find ISO currency '.$currency->getCode());
54 }
55
56 return $this->getCurrencies()[$currency->getCode()]['numericCode'];
57 }
58
59 /**
60 * @return \Traversable
61 */
62 #[\ReturnTypeWillChange]
63 public function getIterator()
64 {
65 return new \ArrayIterator(
66 array_map(
67 function ($code) {
68 return new Currency($code);
69 },
70 array_keys($this->getCurrencies())
71 )
72 );
73 }
74
75 /**
76 * Returns a map of known currencies indexed by code.
77 *
78 * @return array
79 */
80 private function getCurrencies()
81 {
82 if (null === self::$currencies) {
83 self::$currencies = $this->loadCurrencies();
84 }
85
86 return self::$currencies;
87 }
88
89 /**
90 * @return array
91 */
92 private function loadCurrencies()
93 {
94 $file = __DIR__.'/../../resources/currency.php';
95
96 if (file_exists($file)) {
97 return require $file;
98 }
99
100 throw new \RuntimeException('Failed to load currency ISO codes.');
101 }
102 }
103