src/CurrencyLoader.php
<?php
declare(strict_types=1);
namespace Rinvex\Country;
class CurrencyLoader
{
protected static $currencies = [];
/**
* Retrive all the currencies of all countries.
*
* @param bool $longlist states if need all the details of the currencies or only the keys
*
* @throws \Rinvex\Country\CountryLoaderException
*
* @return array
*/
public static function currencies($longlist = false): array
{
$list = $longlist ? 'longlist' : 'shortlist';
if (! isset(static::$currencies[$list])) {
$countries = CountryLoader::countries($longlist);
foreach ($countries as $country) {
if ($longlist) {
foreach ($country['currency'] as $currency => $details) {
! $currency || static::$currencies[$list][$currency] = $longlist ? $details : $currency;
}
} else {
! $country['currency'] || static::$currencies[$list][$country['currency']] = $country['currency'];
}
}
}
$currencies = static::$currencies[$list];
ksort($currencies);
return $currencies;
}
}