greksazoo/mnb-exchange-laravel

这是一个针对 Laravel 的 MNB(匈牙利国家银行)汇率查询包。

1.1.8 2023-02-14 11:13 UTC

This package is auto-updated.

Last update: 2024-09-14 14:41:37 UTC


README

Latest Version on Packagist PHPStan Total Downloads

这是一个适用于 Laravel v8 或更高版本的 MNB 汇率查询包。

要求

此包需要 PHP v7.4 或更高版本,以及 Soap 和 SimpleXml。未在 Laravel 的先前版本上进行测试。

专业知识

此包主要基于 MNB 包MNB Laravel 包 构建。

安装

您可以通过 composer 安装此包。

composer require greksazoo/mnb-exchange-laravel

配置

导出

php artisan vendor:publish --provider="Greksazoo\MnbExchangeLaravel\MnbExchangeLaravelServiceProvider" --tag="config"

config/mnb-exchange.php

    /*
     * Wsdl file location.
     * */
    'wsdl' => env('MNB_SOAP_WSDL', 'http://www.mnb.hu/arfolyamok.asmx?wsdl'),

    'cache' => [

        /*
         * Desired cache driver for service.
         * */
        'store' => env('MNB_CACHE_DRIVER', 'file'),

        /*
         * Minutes the cached currencies will be held for.
         * Default: 24hrs (1440)
         * */
        'timeout' => env('MNB_CACHE_MINUTES', 1440),
    ]

使用

通过外观访问

use Greksazoo\MnbExchangeLaravel\Facade\Mnb

$currency = Mnb::currentExchangeRate('EUR');

echo $currency->code; // 'EUR'
echo $currency->getCode(); // 'EUR'
echo $currency->unit; // '1'
echo $currency->getUnit(); // '1'
echo $currency->amount; // '350'
echo $currency->getAmount(); // '350'

通过应用容器解析

$currency = app(\Greksazoo\MnbExchangeLaravel\MnbExchangeLaravel::class)->currentExchangeRate('EUR');

通过引用访问刷新日期

您可以通过向某些方法传递 $date 变量来检查数据源日期。这些方法将变量转换为 Carbon 实例。

Mnb::exchangeRates($date);
$date->isToday();

可用方法

不使用缓存

这些方法不会使用和更新缓存。

  • currentExchangeRate($code, &$date = null): Currency
  • currentExchangeRates(&$date = null): Currency 数组

将使用缓存

这些方法将使用缓存。

  • exchangeRate($code, &$date = null): 单个 Currency
  • exchangeRates(&$date = null): Currency 数组
  • currencies(): 字符串数组(每个都是货币代码)
  • hasCurrency($code): bool

测试

composer test

更新日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全

如果您发现任何安全问题,请通过电子邮件 zoli.greksa@gmail.com 而不是使用问题跟踪器。

鸣谢

许可证

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。

Laravel 包模板

此包是使用 Laravel 包模板 生成的。