Skip to content
Value objects for quantities
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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'));


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


    "require": {
        "phospr/quantity": "dev-master"
You can’t perform that action at this time.