kantorge / laravel-currency-exchange-rates
A Laravel package to retrieve historical currency exchange rate data
Fund package maintenance!
kantorge
Installs: 1 607
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/kantorge/laravel-currency-exchange-rates
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
README
This package can be used to retrieve historical currency exchange rate data from various sources. The main purpose is to provide a unified interface to retrieve data from different sources. Currently, the following sources are supported:
- Frankfurter
- CurrencyBeacon (requires free API key)
- A mock source that can be used for testing purposes
Installation
You can install the package via composer:
composer require kantorge/laravel-currency-exchange-rates
You can publish the config file with:
php artisan vendor:publish --tag="laravel-currency-exchange-rates-config"
Configuration
Using CurrencyBeacon
CurrencyBeacon requires an API key. You can get a free API key at https://currencybeacon.com/.
Add your API key to your .env file:
CURRENCY_BEACON_API_KEY=your_api_key_here
To use CurrencyBeacon as your default provider, set it in the published config file:
'default_provider' => 'currencybeacon',
Or specify it when creating the client:
$currencyApi = CurrencyExchangeRates::create('currencybeacon');
Usage
Get a new instance of the CurrencyExchangeRates class with the default source, as defined in the config file.
use Kantorge\CurrencyExchangeRates\Facades\CurrencyExchangeRates; $currencyApi = CurrencyExchangeRates::create();
View the list of available currencies
// [ 'EUR', 'USD', 'GBP', ...] $currencyApi->getSupportedCurrencies();
Get the exchange rate for a specific date range, with a specific base currency and target currencies
// [ // '2021-01-01' => [ // 'EUR' => 1, // 'USD' => 1.23, // ], // ] $currencyApi->getTimeSeries( new Carbon('2021-01-01'), new Carbon('2021-01-01'), 'HUF', ['EUR', 'USD'] );
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.