orkhanahmadov/currencylayer

currencylayer.com 的 PHP 客户端

1.1.0 2019-09-26 13:34 UTC

This package is auto-updated.

Last update: 2024-09-27 01:59:19 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

Build Status Test Coverage Maintainability Quality Score StyleCI

为 currencylayer.com 货币汇率提供简单的 PHP 客户端。

安装

您可以通过 composer 安装此包

composer require orkhanahmadov/currencylayer

使用

实例化 Orkhanahmadov\Currencylayer\CurrencylayerClient 类并传入您的 "访问密钥"

use Orkhanahmadov\Currencylayer\CurrencylayerClient;

$client = new CurrencylayerClient('your-access-key-here');

您可以在 Currencylayer 控制台 中找到您的访问密钥。

如果您正在使用 付费计划,您可以使用 HTTPS 连接到 currencylayer.com API。在实例化时,将 true 作为第二个参数传入以使用 HTTPS 连接。

$client = new CurrencylayerClient('your-access-key-here', true);

可用方法

quotes()

使用此方法获取实时和历史汇率。

将源货币传递给 source() 方法,将汇率货币传递给 currency() 方法。以下示例将获取从 USD 到 EUR 的实时汇率。

$client->source('USD')->currency('EUR')->quotes();

您还可以将多个汇率货币传递给 currency() 方法

$client->source('USD')->currency('EUR', 'AUD')->quotes();
// you can also pass currencies as an array
$client->source('USD')->currency(['EUR', 'AUD'])->quotes();

如果您想获取特定日期的汇率,可以将日期传递给 date() 方法。 date() 方法接受日期字符串或 DateTimeInterface 实例。

$client->source('USD')->currency('EUR')->date('2019-05-20')->quotes();

quotes() 方法返回 Orkhanahmadov\Currencylayer\Data\Quotes 实例。您可以使用以下方法

  • source() - 返回源货币(例如,USD
  • timestamp() - 返回 currencylayer API 的时间戳值(例如,1432400348
  • quotes() - 返回来自 currencylayer API 的引用数组
  • date() - 返回 DateTimeInterface 日期。如果您获取了实时汇率,此方法将返回 null

您还可以使用货币名称作为属性获取获取的每种货币的汇率

$quotes = $client->source('USD')->currency(['EUR', 'AUD'])->date('2019-05-20')->quotes();

$qoutes->EUR; // returns USD to EUR rate for 2019-05-20
$qoutes->AUD; // returns USD to AUD rate for 2019-05-20

convert()

使用此方法将一种货币的金额转换为另一种货币。

将源货币传递给 source() 方法,将汇率货币传递给 currency() 方法,将金额传递给 convert() 方法。以下示例将使用实时汇率将 10 USD 转换为 GBP。

$client->source('USD')->currency('GBP')->convert(10);

如果您想根据不同日期的汇率进行转换,可以将日期传递给 date() 方法。 date() 方法接受日期字符串或 DateTimeInterface 实例。

$client->source('USD')->currency('GBP')->date('2019-05-20')->convert(10);

convert() 方法返回 Orkhanahmadov\Currencylayer\Data\Conversion 实例。您可以使用以下方法

  • fromCurrency() - 返回源货币(例如,USD
  • toCurrency() - 返回目标货币(例如,GBP
  • timestamp() - 返回 currencylayer API 的时间戳值(例如,1432400348
  • amount() - 返回传递给 convert() 方法的金额(例如,10
  • quote() - 返回源货币和目标货币之间的报价(例如,0.658443
  • result() - 返回转换结果(例如 6.58443
  • date() - 返回 DateTimeInterface 日期。如果您获取了实时汇率,此方法将返回 null

timeframe()

使用此方法显示给定日期之间的汇率。

将源货币传递给 source() 方法,将汇率货币传递给 currency() 方法,将开始日期作为 timeframe() 方法的第一个参数,将结束日期作为第二个参数。开始日期和结束日期可以是日期字符串或 DateTimeInterface 实例。

以下示例将返回从 2010-03-012010-04-01 的 USD 到 GBP 和 EUR 的时间段汇率。

$client->source('USD')->currency('GBP', 'EUR')->timeframe('2010-03-01', '2010-04-01');

timeframe() 方法返回 Orkhanahmadov\Currencylayer\Data\Timeframe 实例。您可以使用以下方法

  • source() - 返回源货币(例如,USD
  • startDate() - 返回 DateTimeInterface 开始日期
  • endDate() - 返回 DateTimeInterface 结束日期
  • allQuotes() - 返回从开始日期到结束日期每天分组引用的数组
  • quotes() - 接受字符串日期或 DateTimeInterface 实例,并返回该天的汇率

您还可以使用货币代码作为函数调用,并将日期传递以获取汇率

$timeframe = $client->source('USD')->currency('GBP', 'EUR')->timeframe('2010-03-01', '2010-04-01');

$timeframe->GBP('2010-03-15'); // returns USD to GBP rate for 2010-03-15
$timeframe->EUR('2010-03-20'); // returns USD to EUR rate for 2010-03-20

change()

使用此方法来显示给定日期之间的货币汇率变化。

将源货币传递给 source() 方法,将汇率货币传递给 currency() 方法,并将起始日期作为 change() 方法的第一个参数,将结束日期作为第二个参数。起始日期和结束日期可以是日期字符串或 DateTimeInterface 实例。

以下示例将返回从 2010-03-012010-04-01 之间 USD 到 GBP 和 EUR 的汇率变化。

$client->source('USD')->currency('GBP', 'EUR')->change('2010-03-01', '2010-04-01');

change() 方法返回 Orkhanahmadov\Currencylayer\Data\Change 实例。您可以使用以下方法

  • source() - 返回源货币(例如,USD
  • startDate() - 返回 DateTimeInterface 开始日期
  • endDate() - 返回 DateTimeInterface 结束日期
  • quotes() - 返回起始日期和结束日期之间货币汇率变化的数组
  • rate() - 接受货币代码作为参数,并返回给定起始日期的货币汇率
  • endRate() - 接受货币代码作为参数,并返回给定结束日期的货币汇率
  • amount() - 接受货币代码作为参数,并返回货币金额的变化
  • percentage() - 接受货币代码作为参数,并返回货币汇率的百分比变化

list()

使用此方法来获取所有可用货币的列表。

$client->list();

方法将返回具有 currencyCode => currencyName 结构的货币数组。

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何安全相关的问题,请通过电子邮件 ahmadov90@gmail.com 而不是使用问题跟踪器。

致谢

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件