ageekdev/laravel-num
A lightweight Laravel package for number formatting and conversion, offering convenient helpers to present numeric values consistently in your app. Includes a clean API for common number tasks and simple Laravel integration.
Architecture fit. ageekdev/laravel-num is a thin, single-purpose Laravel utility package (number formatting/parsing helpers plus a service provider and facade). Architecturally it is a low-coupling, stateless library: no migrations, no queue workers, no persistence, no config-heavy bootstrapping. That makes it a low-risk fit for any Laravel service that needs consistent number handling, and equally easy to replace with an in-house helper if the dependency ever becomes a liability. The v2.0.0 release does not change that profile — it is a platform-support release, not a feature release.
Integration feasibility. Straightforward for greenfield or already-modern services: composer require ageekdev/laravel-num:^2.0 on PHP 8.2+ with Laravel 13.x. The gating factor is the platform floor, not the package itself. v2.0.0 raises the minimum to PHP 8.2 and drops Laravel 9/10 (and, per the notes' ambiguous third entry, likely 11). Any application still on PHP 8.0/8.1 or Laravel 10/11 cannot consume v2 without a framework upgrade first.
Technical risk.
ext-intl or ICU data; container base images must be verified.Key questions.
composer.json constraints for php and illuminate/support in v2.0.0 — specifically, is Laravel 12 supported or dropped?ext-intl or any locale/ICU dependency?Stack fit. Good fit for services on Laravel 12/13 with PHP 8.2+ and Composer 2. Poor fit — currently — for anything on Laravel 10/11 or PHP ≤8.1. This is a portfolio segmentation problem: the package did not get worse, our fleet is simply split across the new floor and the old one.
Migration path. For existing v1.x consumers, the correct move is not an immediate bump:
^1.4 explicitly in composer.json on legacy services so a composer update cannot pull v2 and break the build.^2.0 in a branch, with the package's own tests plus our golden-output tests run against it.^2.0 directly.Compatibility. Verify transitive constraints against our other Laravel packages before rollout — a hard illuminate/support: ^13.0 constraint will conflict in any app still pinning Laravel 12 components. Also check for namespace/facade-alias collisions with any existing number/currency formatting package to avoid duplicate helpers.
Sequencing.
composer.json and the CI matrix; resolve the Laravel 12/13 ambiguity and the changelog typo with the maintainer (open an issue). Output: a definitive support matrix.^1.4 across all legacy services so v2 cannot arrive accidentally.Maintenance. Low carrying cost: no schema, no config drift, no background processes. The real maintenance burden is governance — tracking whether the 1.x line is still patched, and re-validating on each future major. Budget a small recurring line item, not a project.
Support. Community-only, no vendor SLA, effectively one maintainer. Treat the package as "we support it ourselves, sourced from OSS." Mitigations: vendor a pinned copy or maintain an internal fork mirror; ensure the license permits it; record the fork procedure in the runbook before it is needed.
Scaling. Effectively zero runtime and infrastructure impact — pure in-process computation, no I/O, no state, no cache. It will not be a throughput or capacity consideration at any realistic scale. It also does not influence horizontal scaling, deployment topology, or cold-start behavior.
Failure modes.
ext-intl/ICU in a slim container image causes runtime failures that pass CI on a fuller base image.^1.4 resolving to v2 in a legacy app breaks the build at the worst possible time.Ramp-up. For an individual developer: under a day to integrate and validate — the API surface is small and the docs pattern is standard Laravel. The organizational ramp-up is the actual cost: platform-upgrade coordination across service owners, plus the golden-output harness. Estimate one engineer-week of coordination spread across teams, versus hours of hands-on-keyboard work.
Recommendation. Adopt v2.0.0 for greenfield and Laravel 13 services after the support matrix is confirmed. Pin legacy services to ^1.4 immediately as a containment measure and let their v2 adoption ride on the platform-upgrade roadmap rather than this release. Do not treat the dropped-version support as a reason to remove the package — treat the unresolved Laravel 12 question and the unpinned constraints as the two items that need action this sprint.
How can I help you explore Laravel packages today?