phospr/quantity

PHP value objects for quantities

v1.2.0 2016-02-09 19:17 UTC

This package is auto-updated.

Last update: 2024-12-06 08:36:49 UTC


README

Build Status Coverage Status

A library to represent various quantities as value objects with the ability to convert from one Unit of Measurement to another. Inspired by mathiasverraes/money.

A Quantity is made up of an amount (expressed as a Fraction) and a Uom (Unit of Measure).

Currently, only Weight is implemented, but other possibilities include Quantity, Volume, Length etc.

$weight = new Weight(new Fraction(14), new Uom('OZ'));

Usage

Creating Uoms

Units of Measure can be created in the following manner. These two examples are equivalent:

$pounds = new Uom('LB');
$pounds = Uom::LB();

Creating Quantities

Quantities can be created in any of the following ways. These three examples are equivalent:

$weight = new Weight(new Fraction(10), new Uom('LB'));
$weight = new Weight(new Fraction(10), Uom::LB());
$weight = Weight::LB(10);

Converting Quantities

In the following example, we convert 2 lb (pounds) into ounces:

echo Weight::LB(2)->to(Uom::OZ()); // 32

Using Fractions

The amount part of a Quantity is expressed as a Fraction. This allows us to convert Quantities accurately:

echo Weight::OZ(28)->to(Uom::LB()); // 1 3/4 LB

Installation

{
    "require": {
        "phospr/quantity": "dev-master"
    }
}