Download the PHP package elriseio/finance-money-bundle without Composer

On this page you can find all versions of the php package elriseio/finance-money-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package finance-money-bundle

elriseio/finance-money-bundle

Type-safe monetary value objects, currency registry, exchange-rate port, and Symfony Bundle integration for high-load financial applications.

CI Latest Stable Version Total Downloads License

Money Bundle is a Symfony-native bundle for high-load financial applications. It provides a type-safe monetary value object layer for PHP 8.3+ applications. Every arithmetic operation goes through BCMath; currency mismatch is a compile-time error; the exchange-rate port is injected through DI so consumers stay in control of regional API choice.

The bundle is part of the elriseio/ vendor namespace alongside the sibling elriseio/dbal-bundle. The composer name elriseio/finance-money-bundle is the canonical identifier on Packagist and in the project's composer.json name field.

What you get

When to use this

When NOT to use this

Requirements

Requirement Version Mandatory
PHP 8.3, 8.4, or 8.5 yes
ext-bcmath any yes
ext-intl any optional (used by MoneyFormatter)
Composer 2.x yes
Symfony 7.x or 8.x yes (for the Bundle layer; core is framework-agnostic)

PHP 8.2 is not supported (the bundle uses final readonly class, enum cases, and typed constants).

Installation

Register the bundle in config/bundles.php (Symfony Flex does this automatically):

Quick start

A minimal Symfony services.yaml excerpt:

Configuration

Quality gates

Run the full battery locally before opening a PR:

All four commands exit non-zero on failure. CI runs the same matrix on PHP 8.3, 8.4, and 8.5; Composer resolves symfony/* to the highest stable branch that matches the platform PHP (Symfony 7.x on PHP 8.3, Symfony 7.x or 8.x on PHP 8.4, Symfony 8.x on PHP 8.5).

Custom PHPCS sniffs (tests/Rules/Money/):

Custom PHPStan rule:

Testing

Test suite Where Purpose
Unit tests/Unit/ Pure unit tests, no Symfony container
Contract tests/Contract/ Public-interface invariants; cross-implementation consistency
Property-based tests/Property/ Round-trip and invariant fuzzing (Eris)
Integration itests/ End-to-end with real Symfony container, in-memory rate provider, scenario runners
Benchmark bench/ phpbench micro-benchmarks for hot-path budgets
Failure-mode itests/FailureMode/ Cache-down, provider-down, BCMath-scale-overflow

Property-based tests assert algebraic invariants like add(a, b) == add(b, a), multiply(a, 1) == a, allocate(n) sums to original, and round-trip fromCanonicalString(toCanonicalString(x)) == x.

Performance

The hot path (Money::of, Money::plus, Money::minus, Money::multipliedBy) stays under documented budgets:

Operation Budget Notes
Money::of(string, Currency) < 100 µs includes Decimal construction
Money::plus(Money) < 50 µs BCMath bcadd at receiver's scale
Money::multipliedBy(string) < 100 µs includes quantization
Money::convert(Currency, …) < 1 ms with cached provider, single-hop
Money::convertWithMetadata(…) < 1.2 ms adds ConversionResult construction
Money::compare(Money, …) < 200 µs single-currency baseline
Money::compare(other, provider) < 1.2 ms cross-currency, with provider call
Money::allocate(int) < 1 ms largest-remainder distribution
Money::format(string) < 500 µs with \NumberFormatter
Money::toFloat() < 50 µs one bcdiv cast

Budgets are tracked via phpbench; regressions fail CI. See bench/ for the exact scenarios.

Production deployment

Compatibility matrix

PHP Symfony BCMath Status
8.3 7.x required supported
8.4 7.x required supported
8.4 8.x required supported
8.5 8.x required supported
8.2 any — not supported

Roadmap

Active wave: Wave 0 — Foundation and Contract Baseline (see docs/ROADMAP.md for the full sequence). The roadmap is reviewed after each closed implementation task.

Production-readiness status is tracked in docs/PRODUCTION_READINESS_CHECKLIST.md.

Architecture at a glance

For component-by-component documentation, see docs/components/. For public-contract documentation, see docs/contracts/. For architectural decision records, see docs/adr/.

Contributing

See CONTRIBUTING.md. Notable requirements:

Security

Report security issues privately — see the GitHub Security tab.

Acknowledgements

This bundle consolidates patterns from four production fintech systems that have run since 2018. The architecture rationale is documented in docs/architecture.md. The acknowledgements section is intentionally generic — no internal project names are exposed in public documentation per the sanitization contract.

More examples and more docs

Working examples, end-to-end tutorials, provider recipes, and architectural deep-dives live on the project page:

elrise.io/projects/finance-money-bundle

If something is missing on that page, open an issue on GitHub and tag it docs.

License

MIT — see LICENSE.


All versions of finance-money-bundle with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
ext-bcmath Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package elriseio/finance-money-bundle contains the following files

Loading the files please wait ...