shipsaas/currency-fx

一个PHP库,用于处理来自多个在线外汇服务的货币FX。内置电池。

1.0.0 2023-04-17 09:04 UTC

This package is auto-updated.

Last update: 2024-09-17 12:06:33 UTC


README

codecov Unit Test (PHP 8.1, 8.2) Integration Test E2E Test

一个PHP库,轻松处理货币FX(汇率和转换)。内置电池 🔋🔋🔋。

也适用于Laravel。

厌倦了实现这些并集成第三方服务?让CurrencyFX帮助您完成这项工作。经过单元测试和实战检验!

可用服务/电池

支持

  • 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及贡献者