florianv / laravel-swap by florianv

Currency exchange rates library for Laravel and Lumen
1,304,306
325
15
Package Data
Maintainer Username: florianv
Maintainer Contact: florian@voutzinos.com (Florian Voutzinos)
Package Create Date: 2015-06-10
Package Last Update: 2024-03-20
Home Page: https://florianv.github.io/laravel-swap/
Language: PHP
License: MIT
Last Refreshed: 2024-03-27 03:22:41
Package Statistics
Total Downloads: 1,304,306
Monthly Downloads: 25,754
Daily Downloads: 1,232
Total Stars: 325
Total Watchers: 15
Total Forks: 45
Total Open Issues: 2

Laravel Swap

Build status Total Downloads Scrutinizer Version

Swap allows you to retrieve currency exchange rates from various services such as Fixer, currencylayer or 1Forge and optionally cache the results.

QuickStart

Installation

$ composer require php-http/curl-client nyholm/psr7 php-http/message florianv/laravel-swap

Laravel 5.5+

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"

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 :heart_eyes:

We are proudly supported by the following echange rate providers offering free plans up to 1,000 requests per day:

Fixer

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

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.

1Forge

1Forge provides Forex and Cryptocurrency quotes for over 700 unique currency pairs. They provide the fastest price updates available of any provider, however, they don’t support smaller currencies or historical data.

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 | | 1Forge | * (free but limited or paid) | * (free but limited or paid) | No | | European Central Bank | EUR | * | Yes | | National Bank of Romania | RON | * | Yes | | Central Bank of the Republic of Turkey | * | TRY | Yes | | Central Bank of the Czech Republic | * | CZK | Yes | | Central Bank of Russia | * | RUB | Yes | | WebserviceX | * | * | 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) | | Array | * | * | Yes |

Credits

License

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