Skip to content

redco/redcode-currency-rate-bundle

Repository files navigation

Symfony2 bundle - currency rate loader

Steps to start

  1. Install module to your app from packagist
  2. Add bundle into kernel
$bundles = array(
    ...
    new \RedCode\CurrencyRateBundle\RedCodeCurrencyRateBundle(),
    ...
);

3. Create Currency and CurrencyRate classes:

/**
* @ORM\Entity
*/
class Currency extends \RedCode\CurrencyRateBundle\Entity\Currency
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var string
     */
    protected $code;
}
/**
 * @ORM\Entity
 */
class CurrencyRate extends \RedCode\CurrencyRateBundle\Entity\CurrencyRate
{
    /**
     * @var int
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    protected $id;

    /**
     * @var \DateTime
     */
    protected $date;

    /**
     * @var int
     */
    protected $nominal;

    /**
     * @var float
     */
    protected $rate;

    /**
     * @var \RedCode\Currency\ICurrency
     * @ORM\ManyToOne(targetEntity="Currency")
     * @ORM\JoinColumn(name="currency_id", referencedColumnName="id")
     */
    protected $currency;

    /**
     * @var string
     */
    protected $providerName;
}

4. Add section into config.yml file:

redcode_currency_rate:
    currency_rate_class: NameSpasePath\CurrencyRate
    currency_class: NameSpasePath\Currency

5. Just run the commands:

a. To create base currencies:

./app/console redcode:create:base:currencies

b. To create load currency rates:

./app/console redcode:currency:rate:load

6. And now, you can call currency rate converter by name - redcode.currency.rate.converter

$converter = $container->get('redcode.currency.rate.converter');
$convertedValue = $converter->convert('USD', 'EUR', $value);

Contribute

Pull requests are welcome. Please see our CONTRIBUTING guide.