abgeo / nbg-currency
Library for getting data from National Bank of Georgia (NBG)'s API.
Fund package maintenance!
Patreon
Open Collective
www.paypal.me/ABGEO
Requires
- ext-soap: *
Requires (Dev)
- phpunit/phpunit: ^8.3@dev
README
PHP Library for getting data from National Bank of Georgia (NBG)'s API.
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