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

Currency Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Multi-currency scope decisions. The bundle's domain model — a 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.
  • Build vs. buy (and the third option: copy). This package makes the third option concrete. It is a bounded, well-understood domain (currency metadata + formatting + conversion) that a team can reimplement in a few days on a modern money library. The rational decision is "build small, borrow the schema," not "adopt the dependency."
  • Roadmap sequencing for regional pricing. If a roadmap item is "sell in EU/UK/APAC," the bundle's separation of currency definition from rate provisioning is the right split to preserve: currency catalog as slow-moving config, exchange rates as a fetched/cached concern, price formatting as a presentation concern. That decomposition survives regardless of implementation.
  • Rounding and price-display policy. Decisions like "round at the line item or at the total," "do we display converted prices or only settle in one currency" — the bundle's formatting surface is a reminder that these rules belong in one place, owned by product/finance, not scattered across templates.
  • Framework fit is a product constraint, not a detail. This is a Symfony bundle (DI extension, bundle class, service definitions), not a Laravel package. There is no service provider and no Laravel integration path. Any Laravel-based plan that assumes "just composer require it" is a mis-scoped estimate.
  • Not a supported dependency for anything shipping. Last release 2016-02-15, archived, marked end-of-life, read-only with an explicit no-PR policy, 420 stars but 0 dependents. That dependents figure is the loudest signal in the dataset: essentially nobody in the ecosystem built on it, which means no downstream maintenance pressure, no folk fixes, no PHP 8 / modern-framework backports to lean on.

When to Consider This Package

Consider it only as reference material, and only under these conditions:

  • You are still operating an existing Elcodi/Symfony 2-era codebase that already vendors this bundle, and you are scoping a migration off it. Reading the source is the cheapest way to enumerate the behaviors you must preserve.
  • You are a PM or architect doing domain research on e-commerce currency modeling and want a worked example of currency/rate/formatting separation before writing your own spec. Treat the repo as a design document, not a dependency.
  • You need to sanity-check a build estimate: the surface area here is small enough to confirm that "multi-currency display" is not a quarter-long epic.

Look elsewhere whenever a runtime dependency is implied — which is the default case:

  • Any new build, Laravel or Symfony. EOL, archived, unmaintained since 2016, no security response, no PHP 8 compatibility path, and an explicit statement that pull requests will not be reviewed. Every one of those is disqualifying on its own; together they are decisive.
  • Any Laravel application. Wrong framework entirely. Integration would mean porting bundle service definitions into Laravel providers — i.e., a rewrite wearing a dependency's clothes.
  • Anywhere money is authoritative. Currency and rounding errors are customer-visible and finance-visible. You want a maintained money primitive (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.
  • Anywhere you need a security or compliance answer. There is no one to answer it.

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.

How to Pitch It (Stakeholders)

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.

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.
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect