wmde / euro
Value object for representing a positive amount of Euro
Installs: 31 867
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 12
Forks: 1
Open Issues: 0
Requires
- php: >=7.4
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ~9.0
- wmde/fundraising-phpcs: ~7.0
README
Value Object that represents a positive amount of Euro.
Installation
To add this package as a local, per-project dependency to your project, simply add a
dependency on wmde/euro
to your project's composer.json
file.
Here is a minimal example of a composer.json
file that just defines a dependency on
Euro 1.x:
{ "require": { "wmde/euro": "^1.0.1" } }
Usage
Construction
Constructing from Euro cents (int):
$productPrice = Euro::newFromCents(4200);
Constructing from a Euro amount (float):
$productPrice = Euro::newFromFloat(42.00);
Constructing from a Euro amount (string):
$productPrice = Euro::newFromString('42.00');
Constructing from a Euro amount (int):
$productPrice = Euro::newFromInt(42);
Access
echo $productPrice->getEuroCents(); // 4200 (int) for all above examples
echo $productPrice->getEuroFloat(); // 42.0 (float) for all above examples
echo $productPrice->getEuroString(); // "42.00" (string) for all above examples
Comparison
Euro::newFromCents(4200)->equals(Euro::newFromInt(42)); // true
Euro::newFromCents(4201)->equals(Euro::newFromInt(42)); // false
Running the tests
For tests only
composer test
For style checks only
composer cs
For a full CI run
composer ci
Release notes
1.1.1 (dev)
- Large numbers now cause an InvalidArgumentException rather than a TypeError
1.1.0 (2018-03-21)
- Bumped minimum PHP version from 7.0 to 7.1
1.0.2 (2018-03-20)
- Internal changes to avoid dealing with floats when constructing an Euro object from string
1.0.1 (2018-03-17)
- Fixed rounding issue occurring on some platforms
1.0.0 (2016-07-31)
- Initial release