Currency Rates Driver
This bundle comes with two currency rate providers:
Open Exchange Rates
Before using this driver you need to create your free account at openexchangerates.org.
To use this driver you need to set driver ID and Open Exchange Rates API ID in your config:
ongr_currency_exchange:
# ...
driver: ongr_currency_exchange.open_exchange_driver
open_exchange_rates_api_id: XXXXXX
The list of available currencies can be found here.
European Central Bank
To use this driver set ongr_currency_exchange.ecb_driver
in your config.
The list of available currencies can be found here.
Adding Custom Currency Rates Driver
If you are going to use currency rates provider other than provided by this
bundle you can write a driver for it by implementing CurrencyDriverInterface
interface.
See example below:
// src/AppBundle/Service/CurrencyDriver.php
namespace AppBundle\Service;
use ONGR\CurrencyExchangeBundle\Driver\CurrencyDriverInterface;
class CurrencyDriver implements CurrencyDriverInterface
{
public function getRates()
{
return [
'EUR' => 1,
'USD' => 1.3345,
'JPY' => 136.70,
];
}
public function getBaseCurrency()
{
return 'EUR';
}
}
As you can see currency driver is required to implement only two methods. One method returns a list of available currency rates, and other returns the name of base currency to which over currencies are compared.
Once you have implemented custom currency driver, register it as a service:
# app/config/services.yml
services:
app.currency_driver:
class: AppBundle\Service\CurrencyDriver
Last, set new driver in config:
# app/config/config.yml
ongr_currency_exchange:
# ...
driver: app.currency_driver
Now you can test your custom driver by running currency update command:
$ app/console ongr:currency:update