mibo / currencies
PHP Library of ISO-4217 standard
Installs: 12 428
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: ^8.2
- ext-curl: *
- ext-dom: *
- ext-simplexml: *
- ext-xmlreader: *
- psr/log: ^3.0
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/php-invoker: ^5.0
- phpunit/phpunit: ^11.1
- squizlabs/php_codesniffer: ^3.9
README
Based on ISO-4217
Implementation
composer require mibo/currencies
Usage
To find a currency:
$factory = new \MiBo\Engine\Utils\Currencies\ISO\ISOCurrencyProvider(); // Get By Alphabetic Code ("EUR") $currency = $factory->findByAlphabeticalCode("EUR"); // Get By Numerical Code ("012") $currency = $factory->findByNumericalCode("123"); // Get By Country Name // Returns an array of currencies $currencies = $factory->findByCountry("CZECHIA");
To change list of available currencies to
- add custom currencies;
- allow only some currencies;
- change currencies' data the list(s) can be overwritten:
$factory->getLoader()->setResources(\MiBo\Engine\Utils\Currencies\ISO\ISOListLoader::SOURCE_LOCAL);
Find by country
One should try to avoid looking for a currency by a country.
While other functions stops looping through lists when the needed currency is found, the getCurrencyByCountry
function keeps looking for currency until the end of last file in list. This might prolong the process when one knows that a country uses only one currency and knows a code of the currency.
Currency Class
$currency = new \MiBo\Engine\Utils\Currencies\ISO\ISOCurrency(/*...*/); $currency->getAlphabeticalCode(); // "EUR" $currency->getNumericalCode(); // "978" $currency->getName(); // "Euro" $currency->getMinorUnitRate(); // 2|null
Minor Unit Rate
Is used to specify, how many digits there are for the currency after decimal point.
Few of the currencies do not have a minor unit.
An example for minor unit can be "cent" for "Euro".