Money alternatives and similar libraries
Based on the "E-commerce" category.
Alternatively, view Money alternatives based on common mentions on social networks and blogs.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Money or a related project?
PHP 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. Since version 3.0 this library uses strings internally in order to support unlimited integers.
<?php use Money\Money; $fiveEur = Money::EUR(500); $tenEur = $fiveEur->add($fiveEur); list($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)));
The documentation is available at http://moneyphp.org
PHP 5.6+. Other than that, this library has no external requirements. MoneyPHP will not provide any support to PHP versions that are not supported by the language itself. There might be additional dependencies for specific feature, e.g. the Swap exchange implementation, check the documentation for more information.
$ composer require moneyphp/money
- JSON Serialization
- Big integer support utilizing different, transparent calculation logic upon availability (bcmath, gmp, plain php)
- Money formatting (including intl formatter)
- Currency repositories (ISO currencies included)
- Money exchange (including Swap implementation)
Please see the official documentation.
$ composer test
Running the tests in Docker
Money requires a set of dependencies, so you might want to run it in Docker.
First, build the image locally:
$ docker build -t moneyphp .
Then run the tests:
$ docker run --rm -it -v $PWD:/app -w /app moneyphp vendor/bin/phpunit --exclude-group segmentation
We would love to see you helping us to make this library better and better.
Please keep in mind we do not use suffixes and prefixes in class names,
Currencies. Other than that, Style CI will help you
using the same code style as we are using. Please provide tests when creating a PR and clear descriptions of bugs when filing issues.
If you discover any security related issues, please contact us at [email protected].
The MIT License (MIT). Please see [License File](LICENSE) for more information.
This library is heavily inspired by Martin Fowler's Money pattern. A special remark goes to Mathias Verraes, without his contributions, in code and via his blog, this library would not be where it stands now.
*Note that all licence references and agreements mentioned in the Money README section above are relevant to that project's source code only.