PHP 5.3+ library to make working with money safer, easier, and fun!
"If I had a dime for every time I've seen someone use FLOAT to store currency, I'd have $999.997634" -- Bill Karwin
In short: You shouldn't represent monetary values by a float. Wherever you need to represent money, use this Money value object.
<?php
use Money\Money;
$fiveEur = Money::EUR(500);
$tenEur = $fiveEur->add($fiveEur);
list($part1, $part2, $part3) = $tenEur->allocate(array(1, 1, 1));
assert($part1->equals(Money::EUR(334)));
assert($part2->equals(Money::EUR(333)));
assert($part3->equals(Money::EUR(333)));
The documentation is available at http://money.readthedocs.org
Install the library using composer. Add the following to your composer.json
:
{
"require": {
"mathiasverraes/money": "dev-master"
},
"minimum-stability": "dev"
}
Now run the install
command.
$ composer.phar install
See MoneyBundle
or TbbcMoneyBundle
for Symfony integration or DoctrineMoneyModule
for Zend Framework 2
.