phospr / quantity
PHP value objects for quantities
Installs: 2 670
Dependents: 0
Suggesters: 0
Security: 0
Stars: 11
Watchers: 2
Forks: 2
Open Issues: 2
Requires
- php: >=5.3.0
- phospr/fraction: ^1.1.0
Requires (Dev)
- phpunit/phpunit: 4.0.*
README
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" } }