1. Go to this page and download the library: Download tbbc/money-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tbbc / money-bundle example snippets
use Money\Money;
use Tbbc\MoneyBundle\Form\Type\MoneyType;
// the money library
$fiveEur = Money::EUR(500);
$tenEur = $fiveEur->add($fiveEur);
[$part1, $part2, $part3] = $tenEur->allocate([1, 1, 1]);
assert($part1->equals(Money::EUR(334)));
assert($part2->equals(Money::EUR(333)));
assert($part3->equals(Money::EUR(333)));
// a service that stores conversion ratios
$pairManager = $this->get('tbbc_money.pair_manager');
$usd = $pairManager->convert($tenEur, 'USD');
// a form integration
$formBuilder->add('price', MoneyType::class);
namespace App\AdministratorBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Money\Currency;
use Money\Money;
#[ORM\Table(name: 'test_money')]
#[ORM\Entity]
class TestMoney
{
#[ORM\Column(type: Types::INTEGER)]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private ?int $id;
#[ORM\Column]
private int $priceAmount;
#[ORM\Column(length: 64)]
private string $priceCurrency;
public function getId(): int
{
return $this->id;
}
public function getPrice(): Money
{
if (!$this->priceCurrency) {
return null;
}
if (!$this->priceAmount) {
return new Money(0, new Currency($this->priceCurrency));
}
return new Money($this->priceAmount, new Currency($this->priceCurrency));
}
public function setPrice(Money $price): self
{
$this->priceAmount = $price->getAmount();
$this->priceCurrency = $price->getCurrency()->getCode();
return $this;
}
}
namespace App\AdministratorBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Money\Money;
#[ORM\Table(name: 'test_money')]
#[ORM\Entity]
class TestMoney
{
#[ORM\Column(type: Types::INTEGER)]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private ?int $id;
#[ORM\Column(type: 'money')]
private Money $price;
public function getId(): int
{
return $this->id;
}
public function getPrice(): Money
{
return $this->price;
}
public function setPrice(Money $price): self
{
$this->price = $price;
return $this;
}
}
use Money\Money;
$pairManager = $this->get("tbbc_money.pair_manager");
$pairManager->saveRatio('USD', 1.25); // save in ratio file in CSV
$eur = Money::EUR(100);
$usd = $pairManager->convert($amount, 'USD');
$this->assertEquals(Money::USD(125), $usd);
namespace My\Controller\IndexController;
use Money\Money;
use Money\Currency;
class IndexController extends Controller
{
public function myAction()
{
$moneyFormatter = $this->get('tbbc_money.formatter.money_formatter');
$price = new Money(123456789, new Currency('EUR'));
// best method (added in 2.2+ version)
\Locale::setDefault('fr_FR');
$formatedPrice = $moneyFormatter->localizedFormatMoney($price);
// 1 234 567,89 €
$formatedPrice = $moneyFormatter->localizedFormatMoney($price, 'en');
// €1,234,567.89
// old method (before v2.2)
$formattedPrice = $moneyFormatter->formatMoney($price);
// 1 234 567,89
$formattedCurrency = $moneyFormatter->formatCurrency($price);
// €
}
}
namespace App\Money;
use Tbbc\MoneyBundle\Pair\RatioProviderInterface;
final class YourRatioProviderService implements RatioProviderInterface
{
public function fetchRatio(string $referenceCurrencyCode, string $currencyCode): float
{
// implement your custom logic here
}
}
$pairHistoryManager = $this->get("tbbc_money.pair_history_manager");
$dt = new \DateTime("2023-07-08 11:14:15.638276");
// returns ratio for at a given date
$ratio = $pairHistoryManager->getRatioAtDate('USD', $dt);
// returns the list of USD ratio (relative to the reference value)
$ratioList = $pairHistoryManager->getRatioHistory('USD', $startDate, $endDate);
bash
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.