ashallendesign/exchange-rates

此包已被弃用且不再维护。没有建议的替代包。

用于与exchangerate.host API交互的包

v1.0.0 2021-11-21 23:37 UTC

This package is auto-updated.

Last update: 2024-03-18 21:10:48 UTC


README

PHP Exchange Rates

Latest Version on Packagist Build Status Total Downloads PHP from Packagist GitHub license

目录

概览

Exchange Rates 是一个简单的PHP包,用于与 exchangerate.host API 交互。您可以使用它获取最新的或历史汇率,并在不同的货币和加密货币之间转换货币价值。

安装

您可以通过Composer安装此包

composer require ashallendesign/exchange-rates

该包已开发和测试,以满足以下最低要求

  • PHP 8.0

使用

方法

可用货币

要获取包支持的可用货币,您可以使用如下方式的 ->currencies() 方法

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$exchangeRates->currencies();

汇率

获取两种货币之间的汇率

要获取一种货币到另一种货币的汇率,您可以使用 ->exchangeRate() 方法。

以下示例展示了如何获取今天'GBP'到'EUR'的汇率

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->exchangeRate('GBP', 'EUR');

// $result: '1.10086'

注意:如果传递了Carbon日期作为第三个参数,将返回该天的汇率(如果有效)。如果没有传递日期,将使用今天的汇率。

获取超过两种货币之间的汇率

您可以在一次调用中获取多个货币的汇率。如果您需要一次性获取多个汇率,而不想进行多次API调用,这特别有用。

为此,您可以使用 ->exchangeRate() 方法并传递一个包含货币代码字符串的数组作为第二个参数。这将返回一个包含汇率为字符串的数组。

以下示例展示了如何获取今天'GBP'到'EUR'和'USD'的汇率。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->exchangeRate('GBP', ['EUR', 'USD']);

// $result: [
//     'EUR' => '1.10086',
//     'USD' => '1.25622'
// ];

日期范围内的汇率

获取两种货币之间的汇率

要获取给定日期范围内两种货币之间的汇率,您可以使用 ->exchangeRateBetweenDateRange() 方法。

以下示例展示了如何获取过去3天'GBP'到'EUR'的汇率。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->exchangeRateBetweenDateRange(
    'GBP',
    'EUR',
    Carbon::now()->subWeek(),
    Carbon::now()
);

// $result: [
//     '2020-07-07' => [
//         'EUR' => '1.1092623405',
//     ],
//     '2020-07-08' => [
//         'EUR' => '1.1120625424',
//     ],
//     '2020-07-09' => [
//         'EUR' => '1.1153867604',
//     ],
// ];
获取超过两种货币之间的汇率

要获取一次调用中多个货币的汇率,您可以将包含货币代码字符串的数组作为 ->exchangeRateBetweenDateRange() 方法的第二个参数传递。

以下示例展示了如何获取过去3天'GBP'到'EUR'和'USD'的汇率。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->exchangeRateBetweenDateRange(
    'GBP',
    ['EUR', 'USD'],
    Carbon::now()->subDays(3),
    Carbon::now(),
);

// $result: [
//     '2020-07-07' => [
//         'EUR' => '1.1092623405',
//         'USD' => '1.2523571825',
//      ],
//     '2020-07-08' => [
//         'EUR' => '1.1120625424',
//         'USD' => '1.2550737853',
//      ],
//     '2020-07-09' => [
//         'EUR' => '1.1153867604',
//         'USD' => '1.2650716636',
//      ],
// ];

货币转换

当传递要转换的货币价值(第一个参数)时,您需要以该货币的最小单位进行传递。例如,1英镑GBP将传递为100(因为1英镑=100便士)。

在两种货币之间转换

类似于您可以从一种货币获取到另一种货币的汇率,您也可以将货币价值从一种货币转换为另一种货币。为此,您可以使用 ->convert() 方法。

以下示例展示了如何以今天的汇率将1英镑'GBP'转换为'EUR'。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->convert(100, 'GBP', 'EUR');

// $result: '110.15884906'

注意:如果将碳日期对象作为第三个参数传递,将使用该天的汇率(如果有效)。如果没有传递日期,将使用今天的汇率。

在超过两种货币之间转换

您还可以使用->convert()方法将货币价值从一种货币转换为多种货币。为此,您可以传递一个包含货币代码字符串的数组作为第三个参数。

以下示例展示了如何以今天的汇率将1英镑'GBP'转换为'EUR'和'USD'。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$result = $exchangeRates->convert(
    100,
    'GBP',
    ['EUR', 'USD'],
    Carbon::now(),
);

// $result: [
//     'EUR' => '110.15884906',
//     'USD' => '125.30569081'
// ];

日期范围内的货币转换

当传递要转换的货币价值(第一个参数)时,您需要以该货币的最小单位进行传递。例如,1英镑GBP将传递为100(因为1英镑=100便士)。

在日期范围内在两种货币之间转换

类似于获取日期范围内的汇率,您还可以使用汇率将一种货币的价值转换为另一种货币。为此,您可以使用->convertBetweenDateRange()方法。

以下示例展示了如何使用过去3天的汇率将1英镑'GBP'转换为'EUR'。

$exchangeRates = new \AshAllenDesign\ExchangeRates\Classes\ExchangeRate();

$exchangeRates->convertBetweenDateRange(
    100,
    'GBP',
    'EUR',
    Carbon::now()->subDays(3),
    Carbon::now()
);

// $result: [
//     '2020-07-07' => [
//         'EUR' => '110.92623405',
//      ],
//     '2020-07-08' => [
//         'EUR' => '111.20625424',
//      ],
//     '2020-07-09' => [
//         'EUR' => '111.53867604',
//      ],
// ];
在日期范围内在超过两种货币之间转换

您还可以使用->convertBetweenDateRange()方法,通过日期范围内的汇率将货币价值从一种货币转换为多种货币。为此,您可以传递一个包含货币代码字符串的数组作为第三个参数。

以下示例展示了如何使用过去三天的汇率将1英镑'GBP'转换为'EUR'和'USD'。

$exchangeRates = new ExchangeRate();
$result = $exchangeRates->exchangeRateBetweenDateRange('GBP', ['EUR', 'USD'], Carbon::now()->subDays(3), Carbon::now());

// $result: [
//     '2020-07-07' => [
//         'EUR' => '110.92623405',
//         'USD' => '125.23571825',
//      ],
//     '2020-07-08' => [
//         'EUR' => '111.20625424',
//         'USD' => '125.50737853',
//      ],
//     '2020-07-09' => [
//         'EUR' => '111.53867604',
//         'USD' => '126.50716636',
//      ],
// ];

测试

要运行包的测试,可以使用以下命令:

composer test

安全性

如果您发现任何与安全相关的问题,请直接通过mail@ashallendesign.co.uk与我联系以报告。

贡献

如果您希望对包进行任何更改或改进,请随意提交拉取请求。

在提交您的拉取请求之前,请遵循以下指南以贡献到这个库:

  • 为添加的任何新功能编写测试。如果您正在更新现有代码,请确保现有测试通过,并在需要时编写更多测试。
  • 遵循PSR-12编码标准。
  • 将所有拉取请求提交到master分支。

致谢

变更日志

查看变更日志以获取有关最新更改的更多信息。

升级

查看升级指南以获取有关如何将此库更新到新版本的更多信息。

许可证

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