yuryblakhin / nbrb-exchange
Parser of exchange rates of the National Bank of the Republic of Belarus
Installs: 6
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/yuryblakhin/nbrb-exchange
Requires
- php: ^8.2
- ext-curl: *
- ext-libxml: *
- ext-simplexml: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-01-10 04:44:58 UTC
README
A PHP client for retrieving exchange rates from the National Bank of the Republic of Belarus.
Installation
Install via Composer:
composer require yuryblakhin/nbrb-exchange
Usage
Basic Usage
<?php require_once 'vendor/autoload.php'; use Nbrb\NbrbClient; use Nbrb\Http\CurlHttpClient; use Nbrb\Repository\ExchangeRateRepository; use Nbrb\Exception\NbrbException; use Nbrb\Exception\CurrencyNotFoundException; try { $client = new NbrbClient(); $usdRate = $client->getExchangeRate(currency: 'USD'); echo "Current USD rate: {$usdRate}\n"; $defaultUsdRate = $client->getDefaultExchangeRate(); echo "Current default currency (USD) rate: {$defaultUsdRate}\n"; $eurRate = $client->getExchangeRate(currency: 'EUR', date: new DateTime(datetime: '2026-01-01')); echo "EUR rate on 2026-01-01: {$eurRate}\n"; $allRates = $client->getAllExchangeRates(); echo 'Number of currencies available: ' . count($allRates) . "\n"; $eurClient = new NbrbClient(defaultCurrency: 'EUR'); $defaultEurRate = $eurClient->getDefaultExchangeRate(); echo "Current default currency (EUR) rate: {$defaultEurRate}\n"; $httpClient = new CurlHttpClient( defaultOptions: [ CURLOPT_TIMEOUT => 45, CURLOPT_USERAGENT => 'NBRB Client', ], ); $repository = new ExchangeRateRepository(httpClient: $httpClient); $customClient = new NbrbClient(defaultCurrency: 'USD', repository: $repository); $usdRateCustom = $customClient->getExchangeRate(currency: 'USD'); echo "Custom client USD rate: {$usdRateCustom}\n"; } catch (CurrencyNotFoundException $e) { echo 'Currency not found: ' . $e->getMessage() . "\n"; } catch (NbrbException $e) { echo 'Error: ' . $e->getMessage() . "\n"; }
Requirements
- PHP 8.0 or higher
- cURL extension
- libxml extension
License
MIT