mchervenkov / bnbfixing
Laravel BNB Fixing XML Wrapper
Requires
- php: ^8.0|^8.1|^8.2
- ext-simplexml: *
- guzzlehttp/guzzle: ^7.4
- illuminate/support: ^8.0|^9.0|^10.0
Requires (Dev)
- larastan/larastan: ^2.9
- orchestra/testbench: ^8.18
- pestphp/pest: ^2.34
This package is auto-updated.
Last update: 2024-10-31 00:43:35 UTC
README
Installation
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
Usage
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
Examples
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)
Testing
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
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email mario.chervenkov@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.