PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.3
GiveWP – Donation Plugin and Fundraising Platform v4.16.3
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 / Parser / AggregateMoneyParser.php
give / vendor / moneyphp / money / src / Parser Last commit date
AggregateMoneyParser.php 4 years ago BitcoinMoneyParser.php 4 years ago DecimalMoneyParser.php 1 year ago IntlLocalizedDecimalParser.php 1 year ago IntlMoneyParser.php 1 year ago
AggregateMoneyParser.php
59 lines
1 <?php
2
3 namespace Money\Parser;
4
5 use Money\Currency;
6 use Money\Exception;
7 use Money\MoneyParser;
8
9 /**
10 * Parses a string into a Money object using other parsers.
11 *
12 * @author Frederik Bosch <f.bosch@genkgo.nl>
13 */
14 final class AggregateMoneyParser implements MoneyParser
15 {
16 /**
17 * @var MoneyParser[]
18 */
19 private $parsers = [];
20
21 /**
22 * @param MoneyParser[] $parsers
23 */
24 public function __construct(array $parsers)
25 {
26 if (empty($parsers)) {
27 throw new \InvalidArgumentException(sprintf('Initialize an empty %s is not possible', self::class));
28 }
29
30 foreach ($parsers as $parser) {
31 if (false === $parser instanceof MoneyParser) {
32 throw new \InvalidArgumentException('All parsers must implement '.MoneyParser::class);
33 }
34
35 $this->parsers[] = $parser;
36 }
37 }
38
39 /**
40 * {@inheritdoc}
41 */
42 public function parse($money, $forceCurrency = null)
43 {
44 if ($forceCurrency !== null && !$forceCurrency instanceof Currency) {
45 @trigger_error('Passing a currency as string is deprecated since 3.1 and will be removed in 4.0. Please pass a '.Currency::class.' instance instead.', E_USER_DEPRECATED);
46 $forceCurrency = new Currency($forceCurrency);
47 }
48
49 foreach ($this->parsers as $parser) {
50 try {
51 return $parser->parse($money, $forceCurrency);
52 } catch (Exception\ParserException $e) {
53 }
54 }
55
56 throw new Exception\ParserException(sprintf('Unable to parse %s', $money));
57 }
58 }
59