Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Money Formatter Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

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:

  • Localized price display. Whether a pricing page, catalog, or plan picker shows $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.
  • Checkout and invoice presentation. Invoices, receipts, and order confirmations are surfaces where incorrect formatting reads as a billing defect to customers and support teams. Standardizing the rendering path is a prerequisite for launching in a new currency or locale.
  • Roadmap input for multi-currency. If international expansion is on the roadmap, formatting is the cheapest first step — but it also exposes the gap between "formatting a number" and "modeling money correctly." This package only addresses the former.
  • Build vs. buy, and the answer here is neither. The real decision this package supports is whether money formatting deserves a dependency at all. At roughly a few dozen lines of logic, the honest comparison is against a framework native helper or a first-party utility, not against another vendor.
  • Not supported: FX conversion, arithmetic on monetary values, rounding and tax rules, ledger accuracy, or allocation/splitting. Those are moneyphp/money or brick/money territory, and conflating the two is the most common product mistake in this space.

When to Consider This Package

Adoption criteria are narrow and mostly historical:

  • Only viable for legacy estates. Last release was March 2015, which places it in the PHP 5.x / Laravel 4–5.0 era. Consider it only if you maintain a frozen application on that stack, already depend on it, and the work is maintenance rather than new capability.
  • Only for display, never for computation. If the requirement is strictly "render this number for humans" and nothing downstream parses the output, the risk surface is small.
  • Only if the license and provenance clear review. MIT is fine, but nine stars and zero dependents means no meaningful community scrutiny, no security response process, and no one to escalate a bug to.

Look elsewhere — in practice, almost always — when any of the following hold:

  • You are on PHP 8.x or Laravel 9+. Composer constraints from a 2015 package will fight your platform, and untested code paths on modern runtimes are a silent-failure risk in a customer-facing surface.
  • You need correctness guarantees. Laravel's native Number::currency() / Number::format() (Laravel 11+) backed by the intl extension covers locale-aware formatting without a third-party dependency.
  • You need to do anything with the money beyond printing it. Use moneyphp/money for value objects, arithmetic, and currency safety.
  • You are starting fresh. A single internal helper class with test coverage is cheaper to own than an unmaintained dependency, and it keeps formatting rules next to your product's locale policy.

How to Pitch It (Stakeholders)

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin