elliotwms / abacus
未来货币转换
Requires (Dev)
- phpunit/phpunit: 4.0.*
- vlucas/phpdotenv: ~1.1
This package is not auto-updated.
Last update: 2022-02-01 12:44:28 UTC
README
来自未来的PHP货币操作包。仍处于非常早期的开发阶段。
使用方法
一旦Abacus成功设置,可以这样使用
$abacus = new Abacus(1250.00); // Create a new Abacus object. Defaults to USD echo $abacus; // "1250.00" echo $abacus->format(); // "$1,250.00" echo $abacus->value // 1250 $abacus->toCurrency("GBP"); // Convert USD to GBP $abacus->add(20); // Addition $abacus->add(10, "GBP"); // Addition of a value in another currency $abacus->add(new Abacus(5, "GBP"); // Adding another Abacus object $abacus->sub(20); // Subtraction $abacus->sub(10, "GBP"); // Subtraction of a value in another currency $abacus->sub(new Abacus(5, "GBP"); // Subtract another Abacus object
安装
通过将以下内容包含在composer.json文件中,使用Composer安装Abacus:
{ "require": { "elliotwms/abacus": "0.1.*" } }
或者运行以下命令:
composer require elliotwms/abacus dev-master
轮询API
Abacus依赖于从Open Exchange Rates API获取的数据。为了完全使用Abacus,您必须使用自己的API密钥轮询API。Abacus将寻找名为ABACUS_OPEN_EXCHANGE_KEY
的环境变量,并且可以通过多种方式轮询。
我建议设置一个CRON服务,每小时轮询一次Open Exchange,以保持最新的货币汇率记录。在撰写本文时,Open Exchange Rates API的免费层每月允许1000次调用,而一个月有744小时,所以您应该没有问题。免费层每小时轮询一次是无用的,因为信息每小时都会更新。
如果您想要更即时的汇率,我强烈建议注册付费计划
使用包含的脚本
Abacus包含一个shell脚本,以简化设置过程。
您可以从项目目录的根目录调用它(使用您的CRON服务的绝对文件路径):
php vendor/bin/abacus
默认情况下,它将使用ABACUS_OPEN_EXCHANGE_KEY
环境变量,但如果您需要手动指定,您可以将其作为参数传递
php vendor/bin/abacus my_super_secret_api_key
手动操作
Currency::update();
Abacus也可以直接接受API密钥
Currency::update('my_api_key');
贡献
Abacus使用测试驱动开发,这意味着在编写功能之前,您需要编写该功能的测试。为了使它运行,您需要做一些事情
-
使用
composer install
安装开发依赖项 -
将
ABACUS_OPEN_EXCHANGE_KEY
设置为一个环境变量。您可以在bash shell中这样做:
export ABACUS_OPEN_EXCHANGE_KEY=your_abacus_api_key echo $ABACUS_OPEN_EXCHANGE_KEY
- 使用PHP轮询服务以初始化汇率数据
php bin/abacus
您应该看到类似以下内容:
Polling OpenExchange
Successfully polled OpenExchange with environment variables
- 运行PHPUnit。如果某些测试未通过,则您可能没有正确设置汇率数据。
从这里开始,您可以编写测试并运行PHPUnit来测试它们,然后就可以出发了!