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

v1.0.0 2026-01-10 04:34 UTC

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