shipsaas / currency-fx
一个PHP库,用于处理来自多个在线外汇服务的货币FX。内置电池。
1.0.0
2023-04-17 09:04 UTC
Requires
- php: ^8.1|^8.2
- guzzlehttp/guzzle: ^7.5
- shipsaas/never-throw: ^1.0
Requires (Dev)
- fakerphp/faker: ^v1.20.0
- friendsofphp/php-cs-fixer: ^3.10
- laravel/framework: ^10
- mockery/mockery: ^1.5.1
- orchestra/testbench: ^8
- phpunit/php-code-coverage: ^9|^10
- phpunit/phpunit: ^9|^10
README
一个PHP库,轻松处理货币FX(汇率和转换)。内置电池 🔋🔋🔋。
也适用于Laravel。
厌倦了实现这些并集成第三方服务?让CurrencyFX帮助您完成这项工作。经过单元测试和实战检验!
可用服务/电池
- https://exchangeratesapi.io/
- https://exchangerate.host/
- https://fixer.io/
- https://currencylayer.com/
- https://www.currencycloud.com/
支持
- PHP 8.1+
依赖项
- Guzzle用于API请求
- NeverThrow用于简单的OK/错误响应。
使用方法
只需使用所需参数初始化类。立刻就可以使用。
$service = new CurrencyCloudService($host, $loginId, $apiKey); $rateResponse = $service->getRates('USD', 'SGD'); if (!$rateResponse->isOk()) { // failed to get the rate from third party service // do something here } $rate = $rateResponse->getOkResult()->rate; // float (1.4xxx)
Laravel集成
要求:Laravel 10+
只需安装包,Laravel就会自动发现魔法发生 🥰
因为我们已经在Laravel容器中绑定了服务,所以您只需更新ENVs即可。
导出配置
php artisan vendor:publish --tag=currency-fx-configs
更新ENVs
配置发布后,查看configs/currency-fx.php
。
我们已经为您定义了一些ENVs键,供您添加 😜。
使用方法
use CurrencyFX\Services\CurrencyLayerService; use CurrencyFX\Services\ExchangerRatesApiIoService; // global access app(CurrencyLayerService::class)->getRates('USD', 'EUR'); // DI class TransferService { public function __construct( private ExchangerRatesApiIoService $rateService ) { } public function transfer(): TransferResult { $rateRes = $this->rateService->getRates('EUR', 'GBP'); if ($rateRes->isError()) { return TransferResult::error(...); } $rate = $rateRes->getOkResult()->rate; } }
测试
我们总是喜欢测试。我们有三种测试用例
- 单元测试
- 集成测试
- 端到端测试
查看TEST-README.md了解更多信息!
为项目做出贡献
- 所有更改都必须遵循PSR-1 / PSR-12编码约定。
- 单元测试是必须的,尽可能多地覆盖内容。
请随意添加更多驱动程序并与整个PHP社区分享 😆
这个库有用吗?
谢谢,请给它一个⭐️⭐️⭐️以支持项目。
别忘了与您的朋友和同事分享,这样他们也可以构建自己的SaaS产品 🚀
许可证
MIT许可证
贡献者
ShipSaas, Seth Phat及贡献者