thunderer / currenz
ISO4217货币库
v0.1.0
2017-09-29 23:34 UTC
Requires
- php: ^7.0
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is auto-updated.
Last update: 2024-09-14 23:54:10 UTC
README
Currenz 是一个小巧易用的工具库,为所有在 ISO4217:2015 中定义的货币提供货币价值对象。您可以在 维基百科 上了解更多关于该标准的信息。
安装
此库作为 thunderer/currenz
在 Packagist 上可用。您可以通过在项目目录中执行以下命令使用 Composer 安装它:
composer require thunderer/currenz=^0.1
用法
每种货币都有自己的专用类,并实现了公共接口。有多种方法可以使用其三位字母代码创建给定货币类的实例
use Thunder\Currenz\Currency\PLN; use Thunder\Currenz\Currency\USD; $usd = new USD(); $usd = Currenz::USD(); $usd = Currenz::createFromCode('USD'); $pln = new PLN(); $pln = Currenz::PLN(); $pln = Currenz::createFromCode('PLN');
以下方法可以调用以从货币对象中提取所需信息
assert('PLN' === $pln->getCode()); // ISO4217 currency code assert('Zloty' === $pln->getName()); // regular name assert(2 === $pln->getDigits()); // number of decimal places assert(100 === $pln->getUnits()); // number of base units assert(['POLAND'] === $pln->getCountries()); // list of countries where it is used assert('985' === $pln->getNumber()); // ISO4217 currency number
二进制文件
此库代码中包含两个可执行脚本
bin/generate
从data/list_one.xml
中的数据生成Currenz
类。应在 Composer 的post-install
和post-update
钩子中使用它bin/summary
以易于阅读的表格视图显示该文件中的所有信息。
注意
ISO4217 数据文件
以下从标准网站下载的 ISO4217 数据文件包含在此存储库的 data
目录中
list_one.xml
:正在使用的货币列表,此文件用于在bin/generate
脚本中生成所有类list_one.xls
:相同数据以 XLS 格式list_two.doc
:以 DOC 格式注册的维护机构资金代码信息list_three.xml
:从当前版本的标准中删除的历史货币列表list_three.xls
:相同数据以 XLS 格式overview_amendments.xlsx
:标准的修订列表schema.xsd
:包括 XML 文件的标准的 XSD 架构
非十进制货币
有些货币被称为 非十进制
,这意味着它们的 基本单位不是 10 的幂。它们的值非常低,通常会被省略。目前有两种
- 毛里塔尼亚 1 ouguiya (UM) = 5 khoums
- 马达加斯加 1 ariary = 5 iraimbilanja
此库严格遵循 ISO4217 标准,因此这两个货币都将显示为具有 100 个基本单位(10^2)的货币。