Skip to content

PHP Library for getting data from National Bank of Georgia (NBG)'s API.

License

Notifications You must be signed in to change notification settings

PHPGeorgia/nbg-currency

 
 

Repository files navigation

nbg-currency

PHP Library for getting data from National Bank of Georgia (NBG)'s API.

GitHub license

GitHub release

Packagist Version

Build Status


See documentation generated by phpDocumentor in docs/ folder.

Installation

You can install this library with Composer:

  • composer require abgeo/nbg-currency

Usage

Include composer autoloader in your main file (Ex.: index.php)

  • require_once __DIR__.'/../vendor/autoload.php';

Import Classes:

  • use ABGEO\NBG\Currency;
  • use ABGEO\NBG\Helper\CurrencyCodes;

Now you can create new Currency Class object ex. for USD currency:

  • $USD = new Currency(CurrencyCodes::USD);

The Currency class constructor takes a single argument - the Currency Code. You can pass it manually (ISO 4217) or using ABGEO\NBG\Helper\CurrencyCodes class constants:

AED, AMD, AUD, AZN, BGN, BYR, CAD, CHF, CNY, CZK, DKK, EEK, EGP, EUR, 
GBP, HKD, HUF, ILS, INR, IRR, ISK, JPY, KGS, KWD, KZT, LTL, LVL, MDL, 
NOK, NZD, PLN, RON, RSD, RUB, SEK, SGD, TJS, TMT, TRY, UAH, USD, UZS.

After creating a class object, we can get currency data.
The API gives us:

  • Currency Amount;
  • Currency Description;
  • Currency Change value;
  • Currency Change rate (-1 - decreased; 0 - unchanged; 1 - increased);
  • Currency Date;

Public methods

  • getCurrency() - Get Currency Amount;
  • getDescription() - Get Currency Description;
  • getChange() - Currency Change value;
  • getRate() - Get Currency Change rate;
  • getDate() - Get Currency Date;

Examples

Example for USD

...
echo "Currency: \t{$USD->getCurrency()}\n";
echo "Description: \t{$USD->getDescription()}\n";
echo "Change: \t{$USD->getChange()}\n";
echo "Change Rate: \t{$USD->getRate()}\n";
echo "Date: \t\t{$USD->getDate()->format('m/d/Y')}\n";
...

Full example with USD and EUR

<?php

// Include Composer Autoloader.
require_once __DIR__.'/../vendor/autoload.php';

// Import namespace.
use ABGEO\NBG\Currency;
use ABGEO\NBG\Helper\CurrencyCodes;

// Create new Currency class object for USD and EUR Currencies.
$USD = new Currency(CurrencyCodes::USD);
$EUR = new Currency(CurrencyCodes::EUR);

// Print results.

echo "USD: \n\n";
echo "Currency: \t{$USD->getCurrency()}\n";
echo "Description: \t{$USD->getDescription()}\n";
echo "Change: \t{$USD->getChange()}\n";
echo "Change Rate: \t{$USD->getRate()}\n";
echo "Date: \t\t{$USD->getDate()->format('m/d/Y')}\n";

echo "\n------------------------------------------\n\n";

echo "EUR: \n\n";
echo "Currency: \t{$EUR->getCurrency()}\n";
echo "Description: \t{$EUR->getDescription()}\n";
echo "Change: \t{$EUR->getChange()}\n";
echo "Change Rate: \t{$EUR->getRate()}\n";
echo "Date: \t\t{$EUR->getDate()->format('m/d/Y')}\n";

Export

You can use ABGEO\NBG\Exporter Class for exporting currency data to CSV file or PHP Stream output.
ABGEO\NBG\Exporter class has export() method that takes 3 arguments:

  • currencies - Single Currency Code or array;
  • exportMode [Optional][Default: Exporter::EXPORT_2_FILE]
    • Exporter::EXPORT_2_FILE(1) - To file;
    • Exporter::Exporter::EXPORT_2_FILE(2) - To stream;
  • file [Optional][Default: currency-{current-date}.csv] - Filename to export.

Export examples

Export single currency
...
Exporter::export(CurrencyCodes::USD, Exporter::EXPORT_2_FILE, 'single.csv');
...
Export many currencies
...
Exporter::export(
    [
        CurrencyCodes::USD,
        CurrencyCodes::EUR,
        CurrencyCodes::BGN,
        CurrencyCodes::AMD,
    ],
    Exporter::EXPORT_2_STREAM
);
...

NOTE: Don't print anything before exporting to stream coz we use header() function.

Authors

  • Temuri Takalandze - Initial work - ABGEO

License

This project is licensed under the MIT License - see the LICENSE file for details

About

PHP Library for getting data from National Bank of Georgia (NBG)'s API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%