atefr/nova-money-field
A Laravel Nova money field for displaying and editing monetary values with configurable currency symbols, decimal precision, and formatting. It keeps prices and amounts consistent and readable across Nova admin panels, resources, and forms.
The v1.5.1 release adds support for moneyphp/money v4 and cknow/laravel-money. This is primarily a compatibility and interoperability update, not a new feature in the package’s own domain logic. For a TPM, the key question is whether this release reduces integration friction or introduces upgrade risk.
Architecture fit: The package remains a Laravel-native money abstraction. Supporting moneyphp/money v4 aligns with the modern PHP money ecosystem and is likely necessary for long-term viability. Adding cknow/laravel-money support suggests the package can now interoperate with, or be adopted alongside, another Laravel money package. That can reduce duplication in teams already using cknow/laravel-money, but it also raises a scope question: is this package positioning itself as an alternative, a wrapper, or a bridge? The answer affects architectural decisions.
Integration feasibility: Composer-based installation with Laravel auto-discovery and config publishing is straightforward. The main feasibility gate is dependency resolution. moneyphp/money v4 requires PHP 7.4+ and changed some APIs from v3 (notably amount handling as strings rather than integers in some contexts). If the application or other dependencies still pin moneyphp/money v3, this release may not be installable without a broader upgrade. cknow/laravel-money support is likely optional, but that must be confirmed.
Technical risk: Moderate. The package adds compatibility rather than changing its own public API, but the underlying moneyphp/money v4 upgrade can affect arithmetic, formatting, serialization, and rounding behavior if Money objects leak through the package’s boundaries. If the package exposes Money instances directly, consumers may need to adapt. Supporting two money libraries also increases the package’s test matrix and maintenance surface. A patch version number (v1.5.1) for a feature that adds dependency support is slightly unusual and should be validated against semver expectations.
Key questions:
moneyphp/money v3 and v4 simultaneously, or does v1.5.1 require v4?cknow/laravel-money support optional, or does it change default behavior?cknow/laravel-money create ambiguity about which money abstraction should be used in application code?Stack fit: Suitable for Laravel applications on PHP 7.4+ (likely 8.0+ depending on Laravel version) that need first-class money value objects, currency handling, and formatting. It fits monoliths and modular Laravel services. Teams already using cknow/laravel-money should evaluate whether this package replaces, wraps, or complements it before adding another money dependency.
Migration path: If the application currently uses moneyphp/money v3, treat this as a dependency upgrade, not a drop-in patch. Create a branch, update the package, and run the full test suite with special attention to money arithmetic, rounding, formatting, and serialization. If the application uses cknow/laravel-money, run a spike to confirm interoperability and decide whether to consolidate on one abstraction. If neither dependency is present, adoption is low-friction.
Compatibility: Check composer why moneyphp/money and composer why cknow/laravel-money before upgrading. Other packages may pin v3 or conflict with the new support. Confirm Laravel version constraints and PHP version compatibility. Because the release is labeled v1.5.1, verify that it is not a hidden breaking change for existing consumers.
Sequencing:
moneyphp/money to v4 in a dev environment.cknow/laravel-money, test both libraries together and document the preferred abstraction.Maintenance: The package now supports two upstream money libraries, which increases the maintainer’s test matrix and release cadence complexity. For adopters, this is a net positive if it unblocks a moneyphp/money v4 upgrade, but it also means tracking two dependency chains. Pin to a known-good version and monitor releases.
Support: Laravel ecosystem support is likely community-driven. Check issue throughput, release frequency, and whether the maintainer documents the cknow/laravel-money integration. A patch release that adds compatibility support should ideally include a changelog note and migration guidance; absence of that is a mild support risk.
Scaling: Money operations are rarely a scaling bottleneck, but formatting and currency conversion can be. moneyphp/money v4’s string-based amounts may have minor performance implications versus v3 integers, but this is unlikely to matter for typical Laravel workloads. The bigger scaling concern is consistency: if both money libraries are used in different parts of the codebase, behavior may diverge.
Failure modes:
moneyphp/money v3.cknow/laravel-money support is partial or undocumented.Ramp-up: Developers familiar with Laravel and moneyphp/money will ramp up quickly. Those new to moneyphp/money v4 should read the upgrade notes, especially around amount types and immutability. If the package exposes both moneyphp/money and cknow/laravel-money abstractions, onboarding documentation should explicitly state which one to use and when.
How can I help you explore Laravel packages today?