nacoma / fixer-io
fixer.io货币API的包装器
0.9.1
2021-08-10 21:12 UTC
Requires
- php: ^8.0
- ext-json: *
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
- psr/simple-cache: ^1.0
Requires (Dev)
- cache/array-adapter: ^1.1
- guzzlehttp/guzzle: ^7.3
- mockery/mockery: ^1.4
- nyholm/psr7: ^1.4
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.3
- vimeo/psalm: ^4.7
README
此项目是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
头支持通过自定义中间件链来实现缓存。