florianv/laravel-swap

Currency exchange rates library for Laravel and Lumen

1.3.0 2018-04-19 14:35 UTC

README

logo.png

Currency exchange rates library for Laravel and Lumen

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.