elcodi/currency-bundle
Currency Bundle is a Symfony package from the Elcodi e-commerce suite for managing currencies in your application. It provides currency entities, services, and framework integration under the MIT license as part of the read-only Elcodi project.
Currency entity carrying ISO code, symbol, and an exchange rate, plus formatting behavior around prices — is a useful straw-man for deciding whether and how far to go on multi-currency. It is a checklist you can walk through with stakeholders: base currency vs. display currency, rate source, rounding policy, symbol placement, and where conversion happens (pricing service vs. view layer) are all product decisions, not framework ones.composer require it" is a mis-scoped estimate.Consider it only as reference material, and only under these conditions:
Look elsewhere whenever a runtime dependency is implied — which is the default case:
moneyphp/money or brick/money for value objects and arithmetic; akaunting/money if you want a Laravel-native wrapper; Symfony's Intl component for locale-aware formatting) and you own the small amount of currency-catalog and rate-provider code yourself.The composite scores point the same direction: overall 2.34 with an opportunity sub-score of 0.68 reads as "low viability, low upside" — the domain is worth attention, this artifact is not the vehicle.
For executives (30 seconds): We evaluated a currency module from the Elcodi e-commerce suite. The domain coverage is on-target — currency definitions, formatting, exchange rates — but the project is end-of-life: last release in 2016, archived, read-only, explicitly not accepting fixes, and adopted by effectively zero other projects. Recommendation: do not take it on as a dependency. We can capture its design in a short spec and build the equivalent on a maintained money library, at small marginal cost and with a real maintenance story. Adopting it would trade a few days of build for an unbounded support and security liability.
For engineering: the bundle's value is its decomposition — Currency as a slow-changing catalog (ISO code, symbol, precision), exchange rates as a separately provisioned and cached concern, formatting isolated to presentation. That split is worth reusing; the code is not. Porting it to Laravel means reimplementing Symfony DI wiring, and there is no upstream to merge fixes into. Concrete proposal: moneyphp/money (or brick/money) for integer-minor-unit arithmetic and allocation, framework-native Intl/NumberFormatter for display, an internal currency table, and a single rate-provider interface with caching and a fallback policy. Estimate in days, not weeks. Add tests pinning rounding rules and locale formatting, since those are where the money bugs hide.
For finance/ops: the decisions that need your sign-off are policy, not technology — base vs. display currency, rounding point (line item or total), how stale an exchange rate may be before we refuse to quote, and who owns rate sourcing. Those answers transfer to any implementation, so they are worth settling now regardless of which library we pick.
Risk summary if we adopted it anyway: unmaintained for ~9 years; no security patching; no PHP 8+ path; zero dependents means no community fork to fall back on; and framework mismatch guarantees bespoke integration work that nobody else has done. Low reward, open-ended downside.
How can I help you explore Laravel packages today?