juanparati / laravel-exchanger
Laravel货币汇率库
11.1
2024-04-17 12:24 UTC
Requires
- php: >=8.2
- ext-simplexml: *
- florianv/exchanger: ^2.8
- guzzlehttp/promises: ^2.0
- illuminate/cache: ^11
- illuminate/support: ^11
- kevinrob/guzzle-cache-middleware: ^5.0
- php-http/guzzle7-adapter: ^0.1.1
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.5|^11.0
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);
...