redcode / currency-rate-bundle
Symfony2 currency rate bundle, allows convert currencies and load rates via cbr or ecb provider
Installs: 118 093
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 4
Open Issues: 3
Type:symfony-bundle
Requires
- php: ^7.4
- doctrine/dbal: ^2
- doctrine/orm: ^2
- redcode/currency-rate: 0.2.*
- symfony/symfony: ^4.4
Requires (Dev)
This package is not auto-updated.
Last update: 2024-12-16 12:21:34 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.