📦 money/ brick
A money and currency library for PHP
Открыть на GitHub ↗обновлён 3нед назад
Звёзды
★ 1.9k
Форки
118
За неделю
—
За месяц
—
Рост %
—
Язык
PHP
Установка и запуск
Installation
This library is installable via Composer:
composer require brick/money
Basic operations
Money is an immutable class: its value never changes, so it can be safely passed around. All operations on a Money therefore return a new instance:
use Brick\Money\Money;
$money = Money::of(50, 'USD');
echo $money->plus('4.99'); // USD 54.99
echo $money->minus(1); // USD 49.00
echo $money->multipliedBy('1.999'); // USD 99.95
echo $money->dividedBy(4); // USD 12.50
You can add and subtract Money instances as well:
use Brick\Money\Money;
$cost = Money::of(25, 'USD');
$shipping = Money::of('4.99', 'USD');
$discount = Money::of('2.50', 'USD');
echo $cost->plus($shipping)->minus($discount); // USD 27.49
If the two Money instances are not of the same currency, an exception is thrown:
use Brick\Money\Money;
$a = Money::of(1, 'USD');
$b = Money::of(1, 'EUR');
$a->plus($b); // CurrencyMismatchException
If the result needs rounding, a rounding mode must be passed as second parameter, or an exception is thrown:
use Brick\Money\Money;
use Brick\Math\RoundingMode;
$money = Money::of(50, 'USD');
$money->plus('0.999'); // RoundingNecessaryException
$money->plus('0.999', RoundingMode::Down); // USD 50.99
$money->minus('0.999'); // RoundingNecessaryException
$money->minus('0.999', RoundingMode::Up); // USD 49.01
$money->multipliedBy('1.2345'); // RoundingNecessaryException
$money->multipliedBy('1.2345', RoundingMode::Down); // USD 61.72
$money->dividedBy(3); // RoundingNecessaryException
$money->dividedBy(3, RoundingMode::Up); // USD 16.67
Из README репозитория · полный README на GitHub
Теги
currencycurrency-converterexchange-ratesmoneyphp