Currency exchange rates library for PHP
Swap allows you to retrieve currency exchange rates from various services such as Fixer or Google and optionally cache the results.
It is integrated to other libraries like moneyphp/money
and provides
a Symfony Bundle and a Laravel Package.
$ composer require florianv/swap php-http/message php-http/guzzle6-adapter
use Swap\Builder;
// Build Swap with Fixer.io
$swap = (new Builder())
->add('fixer', ['access_key' => 'your-access-key'])
->build();
// 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 15 days ago
$rate = $swap->historical('EUR/USD', (new \DateTime())->modify('-15 days'));
The complete documentation can be found here.
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 |
* | * | 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 |
- A Symfony Bundle FlorianvSwapBundle
- A Laravel Package florianv/laravel-swap
The MIT License (MIT). Please see LICENSE for more information.