wmde/euro

Value object for representing a positive amount of Euro

1.3.0 2022-05-24 08:33 UTC

This package is auto-updated.

Last update: 2024-03-26 16:33:52 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Download count

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