Swap allows you to retrieve currency exchange rates from various services such as Fixer or currencylayer and optionally cache the results.
QuickStart
Installation
$ composer require florianv/laravel-swap php-http/message php-http/guzzle6-adapter
Laravel
Configure the Service Provider and alias:
// /config/app.php
'providers' => [
Swap\Laravel\SwapServiceProvider::class
],
'aliases' => [
'Swap' => Swap\Laravel\Facades\Swap::class
]
Publish the Package configuration
$ php artisan vendor:publish --provider="Swap\Laravel\SwapServiceProvider"
Lumen
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.
Usage
// 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());
Documentation
The complete documentation can be found here.
Sponsors
We are proudly supported by the following echange rate providers offering free plans up to 1,000 requests per day:
Fixer is a simple and lightweight API for foreign exchange rates that supports up to 170 world currencies. They provide real-time rates and historical data, however, EUR is the only available base currency on the free plan.
Currencylayer provides reliable exchange rates and currency conversions for your business up to 168 world currencies. They provide real-time rates and historical data, however, USD is the only available base currency on the free plan.
Services
Here is the list of the currently implemented services:
Service | Base Currency | Quote Currency | Historical |
---|---|---|---|
Fixer | EUR (free, no SSL), * (paid) | * | Yes |
currencylayer | USD (free), * (paid) | * | Yes |
European Central Bank | EUR | * | Yes |
National Bank of Romania | RON | * | Yes |
Central Bank of the Republic of Turkey | * | TRY | No |
Central Bank of the Czech Republic | * | CZK | Yes |
Central Bank of Russia | * | RUB | Yes |
WebserviceX | * | * | No |
1Forge | * (free but limited or paid) | * (free but limited or paid) | No |
* | * | 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 |
Array | * | * | Yes |
Credits
License
The MIT License (MIT). Please see LICENSE for more information.