PHP Classes

PHP NBG Currency: Get currency values from National Bank of Georgia

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 23 All time: 11,291 This week: 524Up
Version License PHP version Categories
nbg-currency 1.0Custom (specified...5PHP 5, Web services, Finances
Description 

Author

This package is specific mainly for applications used in Georgia Georgia .

This class can get currency values from National Bank of Georgia.

It can send HTTP requests to the National Bank of Georgia API server to obtain values about many different currencies.

Currently it can take a given reference currency and obtains values like:

- Exchange value relative to other currency.
- Description text
- Recent change value

Picture of Temuri Takalandze
  Performance   Level  
Innovation award
Innovation award
Nominee: 4x

Winner: 1x

 

Documentation

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


  Files folder image Files (85)  
File Role Description
Files folder image.github (1 file, 1 directory)
Files folder imagedocs (2 files, 9 directories)
Files folder imageexamples (1 file)
Files folder imagesrc (2 files, 3 directories)
Files folder imagetests (1 file)
Accessible without login Plain text file CHANGELOG.md Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file composer.lock Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
Accessible without login Plain text file README.md Doc. Read me

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:23
This week:0
All time:11,291
This week:524Up