nwidart/money-formatter
A Laravel package for formatting monetary values into readable strings. It helps display amounts with currency symbols and customizable formatting, making prices, totals, and financial data easier to render consistently in Blade views and PHP code.
This package sits in the "presentation of money" layer, not the "money math" layer. It appears scoped to a narrow job: taking a numeric amount and rendering it with a currency symbol, separator style, and decimal convention. That means it informs a specific class of product decisions rather than broad architecture:
$1,299.00, 1.299,00 €, or ¥1,299 is a real product decision tied to market entry, conversion, and trust. A formatter is the smallest possible unit of work that unblocks that decision.moneyphp/money or brick/money territory, and conflating the two is the most common product mistake in this space.Adoption criteria are narrow and mostly historical:
Look elsewhere — in practice, almost always — when any of the following hold:
Number::currency() / Number::format() (Laravel 11+) backed by the intl extension covers locale-aware formatting without a third-party dependency.moneyphp/money for value objects, arithmetic, and currency safety.Recommendation: do not adopt. Frame this to leadership as a supply-chain and maintenance decision, not a feature decision.
For executives: the capability matters — customers in new markets need to see prices in their own currency conventions, and getting it wrong looks like a billing error. But the capability is cheap to build and expensive to inherit from an abandoned library. The package's last release predates the current PHP runtime by roughly a decade, has nine stars and no downstream dependents, which means effectively zero community validation or security coverage. The upside is a handful of saved lines; the downside is an unowned dependency in the purchase path.
For engineering: propose a two-line plan instead. Use the framework's native number/currency formatting where available, and wrap it in a thin internal MoneyFormatter service with tests for the locales we actually sell into. This gives product a single seam to change formatting rules per market, keeps currency policy in our codebase, and avoids a PHP 8 compatibility conversation entirely. If we later need multi-currency arithmetic, tax handling, or FX, we escalate deliberately to a maintained money library rather than stretching a formatter past its remit.
The one-line pitch: the formatting decision is worth making, the dependency is not.
How can I help you explore Laravel packages today?