PHP 8.2.30
Preview: AggregateMoneyParser.php Size: 871 B
/proc/thread-self/root/home/byroehnu/easetack.com/vendor/moneyphp/money/src/Parser/AggregateMoneyParser.php

<?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
{
    /**
     * @param MoneyParser[] $parsers
     * @phpstan-param non-empty-array<MoneyParser> $parsers
     */
    public function __construct(private readonly array $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) {
            }
        }

        throw new Exception\ParserException(sprintf('Unable to parse %s', $money));
    }
}

Directory Contents

Dirs: 0 × Files: 5

Name Size Perms Modified Actions
871 B lrw-rw-rw- 2025-04-03 08:26:36
Edit Download
1.68 KB lrw-rw-rw- 2025-04-03 08:26:36
Edit Download
2.34 KB lrw-rw-rw- 2025-04-03 08:26:36
Edit Download
2.19 KB lrw-rw-rw- 2025-04-03 08:26:36
Edit Download
2.30 KB lrw-rw-rw- 2025-04-03 08:26:36
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).