Build status Total Downloads Version
Swap allows you to retrieve currency exchange rates from various services such as Fixer , Currency Data or Exchange Rates Data and optionally cache the results.
$ 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.