Build status Total Downloads Scrutinizer Version

Swap allows you to retrieve currency exchange rates from various services such as Fixer or Google 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.

Services

Here is the list of the currently implemented services.

Service Registry Alias Base Currency Quote Currency Historical
Fixer fixer * * Yes
European Central Bank european_central_bank EUR * Yes
Google google * * No
Open Exchange Rates USD (free), * (paid) * Yes  
Xignite xignite * * Yes
WebserviceX webservicex * * No
National Bank of Romania national_bank_of_romania RON * No
Central Bank of the Republic of Turkey central_bank_of_republic_turkey * TRY No
Central Bank of the Czech Republic central_bank_of_czech_republic * CZK No
Russian Central Bank russian_central_bank * RUB Yes
currencylayer currency_layer USD (free), * (paid) * Yes
Cryptonator cryptonator * Crypto (Limited standard currencies) * Crypto (Limited standard currencies) No
1Forge forge * (free but limited or paid) * (free but limited or paid) No
CurrencyDataFeed currency_data_feed * (free but limited or paid) * (free but limited or paid) No
Array array * * Yes

Credits

License

The MIT License (MIT). Please see LICENSE for more information.