waylandace/currency-rate-bundle

Symfony4 currency rate bundle, allows convert currencies and load rates via cbr or ecb provider

This package's canonical repository appears to be gone and the package has been frozen as a result.

0.3.8 2020-01-17 15:23 UTC

This package is auto-updated.

Last update: 2024-02-18 00:15:54 UTC


README

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.