juanparati/laravel-exchanger

Laravel货币汇率库

11.1 2024-04-17 12:24 UTC

This package is auto-updated.

Last update: 2024-09-17 13:14:25 UTC


README

Laravel-Exchanger

Laravel货币转换库,使用florianv/exchanger

安装

composer require juanparati/laravel-exchanger

门面注册(可选)

'aliases' => [
    ...
    'CurrencyExchanger' => \Juanparati\LaravelExchanger\Facades\ExchangerConverterFacade,
    ...
]

配置

发布配置文件

artisan vendor:publish --provider="Juanparati\LaravelExchanger\Providers\ExchangerServiceProvider"

配置包含一组服务,查看florianv/exchanger文档以了解每个服务的描述和特性。

提供有效的缓存时间(以秒为单位)很重要,以避免重复请求。

使用方法

获取货币汇率

$rate = CurrencyExchanger::getRate('eur', 'pln'); // Return Exchanger\ExchangeRate
$rate->getValue();                                // Returns rate as float
$rate->getDate()->format('Y-m-d')                 // Returns exchange date

// Historical rate
CurrencyExchanger::getRate('nok', 'sek', now()->subDays(10));

货币转换

CurrencyExchanger::convert('ron', 'dkk', 10); // Convert 10 RON to DKK and return as float

// Historical conversion rate 
CurrencyExchanger::convert('ron', 'dkk', 10, now()->subDays(5));

// Obtain the last rate (Exchanger\ExchangeRate) for the previous currency conversion
CurrencyExchanger::getLastExchangeRateResult();

缓存状态

有时需要禁用缓存以强制请求最新的汇率或转换。为此,可以暂时禁用缓存

CurrencyExchanger::setCacheStatus(false); // Cache disabled
CurrencyExchanger::setCacheStatus(true);  // Cache enabled

记住,当配置密钥"cache_time"具有有效的整数时,缓存默认始终启用。

按需附加/分离服务

可以按需附加和分离服务

// Detach service
CurrencyExchanger::detach(\Exchanger\Service\Cryptonator::class);

// Attach service
CurrencyExchanger::attach(\Exchanger\Service\Cryptonator::class);

默认情况下,所有在配置中注册的服务都会自动附加。

执行自定义查询

由于这个库是florianv/exchanger的包装器,因此可以通过将构建的查询传递给"executeQuery"方法来执行自定义查询。

...
CurrencyExchanger::executeQuery($query->build);
...