Laravel货币是用于当前和历史货币汇率和加密货币汇率的简单软件包。基于免费的API exchangerate.host-无需API密钥!
安装
composer require amrshawky/laravel-currency
用法
1.货币换算
要将一种货币转换为另一种货币,您可以将这些方法链接起来:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->get();
要转换的金额默认为1,您可以指定金额:
use AmrShawky\Currency\Facade\Currency;Currency::convert() ->from('USD') ->to('EUR') ->amount(50) ->get();
2.使用历史汇率转换货币YYYY-MM-DD:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->date('2019-08-01') ->get();
3.将转换后的金额四舍五入到小数位:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->round(2) ->get();
4.您也可以在外汇银行视图之间切换数据源:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->source('ecb') //在外汇默认值,银行视图或加密货币之间切换数据源。 ->get();
5.为了获得最新价格,您可以将这些方法链接起来:
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->latest() ->get();
6.就像货币转换一样,您可以链接任何可用的方法:
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->latest() ->symbols(['USD', 'EUR', 'EGP']) //用于限制输出货币的一组货币代码 ->base('GBP') //更改基础货币(默认值:EUR)。输入您的首选基础货币的三个字母的货币代码。 ->amount(5.66) //指定要转换的金额 ->round(2) //整数到小数位 ->source('ecb') //在外汇默认值,银行视图或加密货币之间切换数据源。 ->get();
7.自1999年以来,大多数货币的历史汇率都是可用的。
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->historical('2020-01-01') //`YYYY-MM-DD` Required date parameter to get the rates for ->get();
8.与最新汇率相同,您可以链接任何可用方法:
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->historical('2020-01-01') ->symbols(['USD', 'EUR', 'CZK']) ->base('GBP') ->amount(5.66) ->round(2) ->source('ecb') ->get();
9.时间序列是您选择的两个日期之间的每日历史汇率,最长期限为365天。这将返回一个array以键为日期的值,以键为日期的值array或null失败率的值。
Currency::rates() ->timeSeries('2021-05-01', '2021-05-04') //开始日期,结束日期 ->symbols(['USD', 'EUR', 'EGP']) ->base('GBP') ->amount(5.66) ->round(2) ->source('ecb') ->get();
10.默认行为是返回null请求期间发生的错误(连接超时,DNS错误,客户端或服务器错误状态代码,缺少API成功参数等)。如果您想引发异常,则可以使用throw方法,该throw方法返回货币实例,从而允许您链接其他方法:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->amount(20) ->throw(function ($response, $e) { // }) ->get();
11.您可以使用该withoutVerifying方法来指示发送请求时不应验证TLS证书:
use AmrShawky\Currency\Facade\Currency; Currency::convert() ->from('USD') ->to('EUR') ->withoutVerifying() ->get();
12.您可以使用方法指定其他Guzzle请求选项withOptions。该withOptions方法接受键/值对的数组:
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->historical('2021-04-30') ->withOptions([ 'debug' => true, 'timeout' => 3.0 ]) ->get();
13.when当给该方法的第一个参数评估为true时,该方法将执行给定的回调:
use AmrShawky\Currency\Facade\Currency; Currency::rates() ->latest() ->when(true, function ($rates) { // 执行 $rates->symbols(['USD', 'EUR', 'EGP']) ->base('GBP'); }) ->when(false, function ($rates) { // 不执行 $rates->symbols(['HKD']); }) ->get();