nacoma/fixer-io

fixer.io货币API的包装器

0.9.1 2021-08-10 21:12 UTC

This package is auto-updated.

Last update: 2024-09-14 04:07:10 UTC


README

tests codecov

此项目是Fixer.io货币转换率API的包装器,具有最少的依赖。升级应用程序总是一件麻烦事。该项目旨在通过仅依赖PSR接口而不是硬依赖来帮助缓解一些压力,同时保持舒适的API。

此项目的另一个目标是始终提供类型化的结果。在消费此API时,关于关联数组的猜测非常少。

支持端点

  • 支持符号
  • 最新汇率
  • 历史汇率
  • 货币转换
  • 时间序列
  • 波动

使用说明

use Nacoma\Fixer\ExchangeFactory;
use Nacoma\Fixer\Http\Client;
use Nacoma\Fixer\Http\Middleware\ETagMiddleware;

$client = new Client(new Psr18Client(), [
    new ETagMiddleware(
        new SimpleCache(),
        new Psr17ResponseFactory(),
        new Psr17StreamFactory(),
    )
]);

$exchangeFactory = new ExchangeFactory(
    $client,
    new Psr17RequestFactory(),
    new Psr17UriFactory(),
    'your-access-key',
);

$exchange = $exchangeFactory->create('USD', ['EUR', 'JPY']);

// obtaining all rates
$result = $exchange->latestRates();

// manual conversion
$converted = 50 * $result->rates['EUR'];

// API endpoint conversion
$converted = $exchange->convert('USD', 'EUR', 50);

可选的 Nacoma\Fixer\Http\Client 是任何HTTP客户端的Psr-18兼容包装器。它可以通过ETag头支持通过自定义中间件链来实现缓存。