Skip to content

ABGEO/nbg-currency

Folders and files

NameName
Last commit message
Last commit date

Latest commit

adda814 · Jun 6, 2020

History

34 Commits
Jun 6, 2020
Feb 26, 2020
Feb 26, 2020
Feb 26, 2020
Feb 26, 2020
Jul 17, 2019
Feb 26, 2020
Jul 17, 2019
Feb 26, 2020
Feb 26, 2020
Jul 17, 2019
Jul 17, 2019

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