![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mcoil.corals.io/vendor/moneyphp/money/src/Currencies/ |
<?php declare(strict_types=1); namespace Money\Currencies; use AppendIterator; use Money\Currencies; use Money\Currency; use Money\Exception\UnknownCurrencyException; use Traversable; /** * Aggregates several currency repositories. */ final class AggregateCurrencies implements Currencies { /** * @param Currencies[] $currencies */ public function __construct(private readonly array $currencies) { } public function contains(Currency $currency): bool { foreach ($this->currencies as $currencies) { if ($currencies->contains($currency)) { return true; } } return false; } public function subunitFor(Currency $currency): int { foreach ($this->currencies as $currencies) { if ($currencies->contains($currency)) { return $currencies->subunitFor($currency); } } throw new UnknownCurrencyException('Cannot find currency ' . $currency->getCode()); } /** {@inheritDoc} */ public function getIterator(): Traversable { /** @psalm-var AppendIterator&Traversable<int|string, Currency> $iterator */ $iterator = new AppendIterator(); foreach ($this->currencies as $currencies) { $currencyIterator = $currencies->getIterator(); /** @psalm-var AppendIterator&Traversable<int|string, Currency> $currencyIterator */ $iterator->append($currencyIterator); } return $iterator; } }