%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/public_html/admin1/vendor/moneyphp/money/src/Parser/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Money\Parser;
use Money\Currency;
use Money\Exception;
use Money\Money;
use Money\MoneyParser;
use function sprintf;
/**
* Parses a string into a Money object using other parsers.
*/
final class AggregateMoneyParser implements MoneyParser
{
/**
* @var MoneyParser[]
* @psalm-var non-empty-array<MoneyParser>
*/
private array $parsers;
/**
* @param MoneyParser[] $parsers
* @psalm-param non-empty-array<MoneyParser> $parsers
*/
public function __construct(array $parsers)
{
$this->parsers = $parsers;
}
public function parse(string $money, Currency|null $fallbackCurrency = null): Money
{
foreach ($this->parsers as $parser) {
try {
return $parser->parse($money, $fallbackCurrency);
} catch (Exception\ParserException $e) {
}
}
throw new Exception\ParserException(sprintf('Unable to parse %s', $money));
}
}