orkhanahmadov / currencylayer
currencylayer.com 的 PHP 客户端
Requires
- php: ^7.1
- ext-json: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- blastcloud/guzzler: ^1.5
- phpunit/phpunit: ^6.0|^7.0|^8.0
This package is auto-updated.
Last update: 2024-09-27 01:59:19 UTC
README
为 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-01
到 2010-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-01
到 2010-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)。有关更多信息,请参阅 许可证文件。