moneyphp/money-bundle
Symfony bundle integrating the Money PHP library, providing service configuration, a Twig extension, form type, and validator for handling monetary values and currencies safely across your application.
moneyphp/money into Symfony, so amounts are immutable value objects backed by integer minor units rather than floats. This is the decision that kills the class of bugs that show up as off-by-one-cent invoices and reconciliation noise — worth adopting the pattern even if you reject the package.moneyphp/money ships the ISO 4217 currency table and per-currency decimal rules (JPY has 0, KWD has 3). The new v0.1.0 release adds a service definition of ISO currencies, which exposes that table as a container service — a small but real convenience for Symfony apps that want the currency list injected rather than re-declared. It moves "can we launch in Japan / the Gulf?" from an open engineering question to a formatting/rounding checklist.Consider it when:
moneyphp/money directly with custom Eloquent casts, or evaluate a Laravel-native alternative.moneyphp/money and wants the Doctrine/Form/Twig/DI integration without writing glue — the v0.1.0 currency service definition is a minor argument in favour of the integration layer.Look elsewhere when:
PM framing: the honest read is "good pattern, thin and early-stage package." The v0.1.0 release revives the wrapper and confirms it is Symfony-DI-oriented, but one service definition does not change the risk profile. Score and adoption signals still say vendor or reimplement the glue, adopt the underlying library's semantics.
To executives: We have a recurring class of money defects — rounding drift, misformatted prices in new markets, penny loss when splitting or refunding. The fix is a standard representation of money (integer minor units, immutable value objects) rather than per-feature arithmetic. The underlying library is mature. The Symfony integration layer we're evaluating just published its first release (v0.1.0), which is encouraging but is a fresh start — it is pre-1.0, lightly used, and has no support commitments yet. Recommendation: adopt the money model as a standard, and plan to own a small amount of integration code rather than depend on a young package. Cost is low either way; the decision that matters is committing to the representation now, before schema and revenue data accumulate.
To engineering: This is a Symfony bundle wrapping moneyphp/money — a Doctrine DBAL type for persisting amounts, a Form type, Twig helpers, and now a container service definition for the ISO currency table. The wrapper is ~glue; the value is the underlying library and the discipline of integer minor units. The v0.1.0 release means the "unmaintained since 2020" concern is no longer the framing — the new concern is maturity and cadence. Expect to verify PHP/Symfony compatibility, and budget for vendoring the DBAL type (~a few hundred lines) so we're never blocked by a 0.x release. If we're on Laravel, skip the bundle entirely and use the base library with custom casts. Open questions we need answered in a spike: current framework version compatibility, how we store currency alongside amounts, whether the new currency service is worth wiring versus injecting our own table, and rounding policy per market.
How can I help you explore Laravel packages today?