elliotwms/abacus

此包已被废弃,不再维护。未建议替代包。

未来货币转换

0.1.1 2015-02-24 00:16 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:44:28 UTC


README

Build Status Latest Stable Version Latest Unstable Version Total Downloads License Code Climate Test Coverage Join the chat at https://gitter.im/elliotwms/Abacus

来自未来的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来测试它们,然后就可以出发了!