You can install the package via composer:
composer require mchervenkov/bnbfixing
If you plan to use database for storing bnb exchange rates:
php artisan migrate
If you need to export configuration file:
php artisan vendor:publish --tag=bnbfixing-config
If you need to export migrations:
php artisan vendor:publish --tag=bnbfixing-migrations
If you need to export models:
php artisan vendor:publish --tag=bnbfixing-models
If you need to export commands:
php artisan vendor:publish --tag=bnbfixing-commands
Methods
// Init BnbFixing Client
$bnbFixing = new BnbFixing();
// Return Bnb exchange rates in xml string format
$bnbFixing->getXmlContent();
// Get Certain exchange rate by code for certain bulgarian lev amount
// This will return how much Euro are 100 bulgarian lev
$bnbFixing->geExchangeBGNRateAmount('EUR', 100);
// Get Bulgarian Lev Rate for certain exchange rate and amount
// This will return how much bulgarian lev are 100 Euro
$bnbFixing->getReverseExchangeBGNRateAmount('EUR', 100);
// Get Amount between two exchange rates depends on BNB Fixings
// This will return how much euro are 100 american dollars
$bnbFixing->getExchangeRate('USD', 'EUR', 100);
Commands
#get exchange rates and insert them into database
php artisan bnb-fixing:sync-bnbfixing
Models
BnbFixing
Get xml content
$bnbFixing = new BnbFixing();
$xmlContent = $bnbFixing->getXmlContent();
dd($xmlContent);
Certain Exchange rate from bulgarian lev amount (100 Bulgarian lev to American dollars)
$bnbFixing = new BnbFixing();
$usd = $bnbFixing->getExchangeRateAmount('USD', 100);
dd($usd);
Certain Exchange rate to bulgarian lev (100 American Dollars to Lev)
$bnbFixing = new BnbFixing();
$lev = $bnbFixing->getReverseExchangeRateAmount('USD', 100);
dd($lev)
Before running tests config xml_url in phpunit.xml file
<php>
<env name="BNB_XML_URL" value="https://www.bnb.bg/Statistics/StExternalSector/StExchangeRates/StERForeignCurrencies/?download=xml"/>
</php>
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email mario.chervenkov@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.