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 / CachedCurrencies.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
CachedCurrencies.php
99 lines
1 <?php
2
3 namespace Money\Currencies;
4
5 use Cache\Taggable\TaggableItemInterface;
6 use Money\Currencies;
7 use Money\Currency;
8 use Psr\Cache\CacheItemPoolInterface;
9
10 /**
11 * Cache the result of currency checking.
12 *
13 * @author Márk Sági-Kazár <mark.sagikazar@gmail.com>
14 */
15 final class CachedCurrencies implements Currencies
16 {
17 /**
18 * @var Currencies
19 */
20 private $currencies;
21
22 /**
23 * @var CacheItemPoolInterface
24 */
25 private $pool;
26
27 /**
28 * @param Currencies $currencies
29 * @param CacheItemPoolInterface $pool
30 */
31 public function __construct(Currencies $currencies, CacheItemPoolInterface $pool)
32 {
33 $this->currencies = $currencies;
34 $this->pool = $pool;
35 }
36
37 /**
38 * {@inheritdoc}
39 */
40 public function contains(Currency $currency)
41 {
42 $item = $this->pool->getItem('currency|availability|'.$currency->getCode());
43
44 if (false === $item->isHit()) {
45 $item->set($this->currencies->contains($currency));
46
47 if ($item instanceof TaggableItemInterface) {
48 $item->addTag('currency.availability');
49 }
50
51 $this->pool->save($item);
52 }
53
54 return $item->get();
55 }
56
57 /**
58 * {@inheritdoc}
59 */
60 public function subunitFor(Currency $currency)
61 {
62 $item = $this->pool->getItem('currency|subunit|'.$currency->getCode());
63
64 if (false === $item->isHit()) {
65 $item->set($this->currencies->subunitFor($currency));
66
67 if ($item instanceof TaggableItemInterface) {
68 $item->addTag('currency.subunit');
69 }
70
71 $this->pool->save($item);
72 }
73
74 return $item->get();
75 }
76
77 /**
78 * {@inheritdoc}
79 */
80 public function getIterator()
81 {
82 return new \CallbackFilterIterator(
83 $this->currencies->getIterator(),
84 function (Currency $currency) {
85 $item = $this->pool->getItem('currency|availability|'.$currency->getCode());
86 $item->set(true);
87
88 if ($item instanceof TaggableItemInterface) {
89 $item->addTag('currency.availability');
90 }
91
92 $this->pool->save($item);
93
94 return true;
95 }
96 );
97 }
98 }
99