kucharovic/money-bundle
A Symfony bundle that integrates the moneyphp/money library, providing Doctrine DBAL types, form types, validators, and Twig helpers for working with monetary values safely and consistently.
moneyphp/money domain model: amounts stored as integer minor units plus a currency code, never floats. This is the decision that shapes schema design (amount BIGINT + currency CHAR(3)), API contracts (return {amount: 1999, currency: "EUR"} or a formatted string, not 19.99), and downstream reporting.Update from v1.3.0: the release adds Symfony 5.x support. This is a compatibility bump, not a capability change — no new domain features, no API/behaviour changes, no deprecations. It narrows the framework-compatibility caveat below but does not alter any of the product decisions above, and it does not touch the license, maintenance, or adoption signals.
Important framing correction: this is a Symfony bundle, not a Laravel package. It does not ship a Laravel service provider, facade, validation rules, Eloquent casts, or config publishing. For a Laravel codebase it is reference material, not a dependency.
Consider it only if all of the following hold:
config/packages/*.yaml and are content to inherit the bundle's conventions for default currency and parser/formatter selection.NOASSERTION, meaning the license could not be determined from the repository. For a distributed or commercial product, treat this as a blocker until a human reads the LICENSE file.Look elsewhere — specifically at moneyphp/money directly — if any of these are true:
AsMoney), and a money validation rule yourself. A day of work, no framework coupling, no abandoned dependency.Recommendation: do not adopt this package. Adopt the pattern and the underlying library.
To executives: There is a widely used, well-tested open-source library that eliminates an entire class of money bugs — rounding drift, floating-point errors on totals, and currency mix-ups in reports. This particular package is a small Symfony-specific wrapper around it. The latest release only adds Symfony 5.x support — a compatibility patch, not a sign of renewed investment. It still has no downstream users and an unclear license, so it saves roughly a day of setup while introducing a maintenance, licensing, and security-review obligation we would carry indefinitely. Our proposal: take the library directly, keep the integration code in-house (small, framework-native, testable), and spend the saved risk budget on the decisions that actually move revenue — multi-currency support, tax display, and a documented rounding policy.
To engineering: The value is in the domain model — integer minor units plus currency, explicit allocation, no floats anywhere in the pricing path. This bundle only adds Symfony container wiring; v1.3.0 merely widens that wiring to Symfony 5.x. In our Laravel codebase that wiring is a service provider, an Eloquent cast, and a validation rule. Estimated effort: 1–2 days including tests, versus adopting a dependency we would end up forking.
Risks if we adopt anyway: thin, single-maintainer activity where the only recent signal is a framework-version bump; no confirmed license; continued compatibility work on modern framework versions; and the strong likelihood we override most of its configuration within a quarter, leaving a dependency that provides no remaining benefit. Score signal is also weak — low overall score, no dependents — which is consistent with a personal/experimental project rather than production infrastructure.
How can I help you explore Laravel packages today?