Stars: 319
Forks: 45
Pull Requests: 28
Issues: 61
Watchers: 15
Last Updated: 2023-05-30 17:58:16
:dollar: Currency exchange rates for Laravel and Lumen
License: MIT License
Languages: PHP
Swap allows you to retrieve currency exchange rates from various services such as Fixer, Currency Data, Exchange Rates Data or Abstract and optionally cache the results.
Fixer is a simple and lightweight API for foreign exchange rates that supports up to 170 world currencies. | |
Currency Data provides reliable exchange rates and currency conversions for your business up to 168 world currencies. | |
Exchange Rates Data provides reliable exchange rates and currency conversions for your business with over 15 data sources. | |
Abstract provides simple exchange rates for developers and a dozen of APIs covering thousands of use cases. |
$ composer require php-http/curl-client nyholm/psr7 php-http/message florianv/laravel-swap
If you use cache, add also PSR-6 adapter and PSR-16 bridge cache dependencies :
$ composer require cache/illuminate-adapter cache/simple-cache-bridge
These dependencies are not required with Laravel 5.8 or greater which implements PSR-16.
If you don't use auto-discovery, add the ServiceProvider
to the providers array in config/app.php
:
// /config/app.php
'providers' => [
Swap\Laravel\SwapServiceProvider::class
],
If you want to use the facade to log messages, add this to your facades in app.php:
'aliases' => [
'Swap' => Swap\Laravel\Facades\Swap::class
]
Copy the package config to your local config with the publish command:
$ php artisan vendor:publish --provider="Swap\Laravel\SwapServiceProvider"
Configure the Service Provider and alias:
// /boostrap/app.php
// Register the facade
$app->withFacades(true, [
Swap\Laravel\Facades\Swap::class => 'Swap'
]);
// Load the configuration
$app->configure('swap');
// Register the service provider
$app->register(Swap\Laravel\SwapServiceProvider::class);
Copy the configuration to /config/swap.php
if you wish to override it.
// Get the latest EUR/USD rate
$rate = Swap::latest('EUR/USD');
// 1.129
$rate->getValue();
// 2016-08-26
$rate->getDate()->format('Y-m-d');
// Get the EUR/USD rate yesterday
$rate = Swap::historical('EUR/USD', Carbon\Carbon::yesterday());
The complete documentation can be found here.
Here is the list of the currently implemented services:
Service | Base Currency | Quote Currency | Historical |
---|---|---|---|
Fixer | EUR (free, no SSL), * (paid) | * | Yes |
Currency Data | USD (free), * (paid) | * | Yes |
Exchange Rates Data | USD (free), * (paid) | * | Yes |
Abstract | * | * | Yes |
coinlayer | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | Yes |
Fixer | EUR (free, no SSL), * (paid) | * | Yes |
currencylayer | USD (free), * (paid) | * | Yes |
exchangeratesapi | USD (free), * (paid) | * | Yes |
European Central Bank | EUR | * | Yes |
National Bank of Georgia | * | GEL | Yes |
National Bank of the Republic of Belarus | * | BYN (from 01-07-2016), BYR (01-01-2000 - 30-06-2016), BYB (25-05-1992 - 31-12-1999) |
Yes |
National Bank of Romania | RON, AED, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EGP, EUR, GBP, HRK, HUF, INR, JPY, KRW, MDL, MXN, NOK, NZD, PLN, RSD, RUB, SEK, TRY, UAH, USD, XAU, XDR, ZAR | RON, AED, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EGP, EUR, GBP, HRK, HUF, INR, JPY, KRW, MDL, MXN, NOK, NZD, PLN, RSD, RUB, SEK, TRY, UAH, USD, XAU, XDR, ZAR | Yes |
National Bank of Ukranie | * | UAH | Yes |
Central Bank of the Republic of Turkey | * | TRY | Yes |
Central Bank of the Republic of Uzbekistan | * | UZS | Yes |
Central Bank of the Czech Republic | * | CZK | Yes |
Central Bank of Russia | * | RUB | Yes |
Bulgarian National Bank | * | BGN | Yes |
WebserviceX | * | * | No |
1Forge | * (free but limited or paid) | * (free but limited or paid) | No |
Cryptonator | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | No |
CurrencyDataFeed | * (free but limited or paid) | * (free but limited or paid) | No |
Open Exchange Rates | USD (free), * (paid) | * | Yes |
Xignite | * | * | Yes |
Currency Converter API | * | * | Yes (free but limited or paid) |
xChangeApi.com | * | * | Yes |
fastFOREX.io | USD (free), * (paid) | * | No |
exchangerate.host | * | * | Yes |
Array | * | * | Yes |
The MIT License (MIT). Please see LICENSE for more information.