submarine / nbrb-exchange-rates-bundle
白俄罗斯共和国国家银行官方汇率解析器
v0.3.1
2019-12-03 13:31 UTC
Requires
- php: >=5.5.0
- guzzlehttp/guzzle: ^5.0|^6.0
Requires (Dev)
- phpunit/phpunit: ^5.2
README
白俄罗斯共和国国家银行官方汇率解析器 (数据来源)
功能
- 通过货币代码获取汇率 (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());