savritsky / currency-rate-bundle
Symfony5+ currency rate bundle, allows convert currencies and load rates via cbr or ecb provider
Installs: 12
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=8.1
- doctrine/dbal: >=2.3.2
- doctrine/orm: >=2.3.2
- redcode/currency-rate: 0.2.*
- symfony/console: ^5.0|^6.0
- symfony/event-dispatcher: ^5.0|^6.0
- symfony/framework-bundle: ^5.0|^6.0
- symfony/twig-bundle: ^5.0|^6.0
Requires (Dev)
- phpunit/phpunit: ^4.8
- satooshi/php-coveralls: ^0.6.1
This package is not auto-updated.
Last update: 2025-03-03 17:47:14 UTC
README
Steps to start
- Install module to your app from packagist
- 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.