submarine/nbrb-exchange-rates-bundle

白俄罗斯共和国国家银行官方汇率解析器

安装: 57

依赖: 0

建议者: 0

安全性: 0

星标: 5

关注者: 2

分支: 1

开放问题: 0

类型:symfony-bundle

v0.3.1 2019-12-03 13:31 UTC

This package is auto-updated.

Last update: 2024-08-29 03:41:56 UTC


README

Scrutinizer Code Quality Build Status

白俄罗斯共和国国家银行官方汇率解析器 (数据来源)

功能

  • 通过货币代码获取汇率 (UAH, USD)。
  • 获取白俄罗斯卢布对指定货币的官方汇率动态,期限不超过365天。
  • 所有数据都封装在对象中
  • 数据缓存(文件缓存)

安装

composer.json

{
    "require": {
        "submarine/nbrb-exchange-rates-bundle": "^0.3"
    }
}

注册包

// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
		// ...
		new Submarine\NbrbExchangeRatesBundle\SubmarineNbrbExchangeRatesBundle(),
	);
	// ...
}

配置 config.yml

# Значения по умолчанию
submarine_nbrb_exchange_rates:
    source:                             # Урлы xml-данных
        url_exchange_rates: 'http://www.nbrb.by/Services/XmlExRates.aspx'
        url_exchange_rates_dynamic: 'http://www.nbrb.by/Services/XmlExRatesDyn.aspx'
        connect_timeout: 3              # Ожидание подключения к сервису, сек (default: 3)
        timeout: 3                      # Ожидание ответа сервера, сек (default: 3)
    exception: false                    # Выкидывать исключения? (default: false)

使用

获取当前汇率

$data = $container->get('nbrb_exchange_rates.provider')
    ->getRateExchange('USD', new \DateTime()); //За текущую дату

多货币

$provider =  $container->get('nbrb_exchange_rates.provider');

// Выбранные валюты
$data = $provider->getRatesExchanges(['UAH', 'USD', 'EUR'], new \DateTime());

// Все валюты
$data = $provider->getAllRatesExchanges(new \DateTime());

// Одна валюта
$rate = $provider->getRateExchange('USD', new \DateTime('2014-01-01'));

汇率变化动态

期限不超过365天。

$container->get('nbrb_exchange_rates.provider')
    ->getRatesExchangesDynamic(
        'USD', 
        new \DateTime('2014-01-01'), 
        new \DateTime('2014-05-01')
    );

缓存

可以在应用程序中使用 CachedExchangeRateProvider 装饰器。缓存提供者必须实现 Doctrine\Common\Cache\Cache 接口(参见 doctrine/cache)。

配置示例 services.yml

services:
    my_nbrb_exchange_rates_cached:
        class: Submarine\NbrbExchangeRatesBundle\Provider\CachedExchangeRateProvider
        arguments:
            - '@nbrb_exchange_rates.provider'
            - '@cache_filesystem'
            - 10800

    cache_filesystem:
        class: Doctrine\Common\Cache\FilesystemCache
        arguments: ['%kernel.cache_dir%/file']
$provider =  $container->get('my_nbrb_exchange_rates_cached');

// Выбранные валюты
$data = $provider->getRatesExchanges(['UAH', 'USD', 'EUR'], new \DateTime());