UnitOfMeasurement
UnitOfMeasurement represents a single unit within a quantity type. Each instance
holds a name, a conversion factor relative to the native unit, and a list of aliases.
Construction
public function __construct(string $name, float $conversionFactor)
The name passed to the constructor is also registered as the first alias. The conversion factor expresses how many native units one of this unit equals.
use Renfordt\UnitLib\UnitOfMeasurement;
$foot = new UnitOfMeasurement('ft', 0.3048); // 1 ft = 0.3048 m
The native unit of a quantity always has a conversion factor of 1.0, because it is the
unit all others are measured against.
Aliases
A unit can carry several names. Aliases let users supply common spellings and abbreviations:
$meter = new UnitOfMeasurement('m', 1);
$meter->addAlias('meter');
$meter->addAlias('metre');
$meter->addAlias('meters');
isAlias() checks whether a given string matches the unit's name or any of its aliases:
$meter->isAlias('metre'); // true
$meter->isAlias('ft'); // false
Property access
conversionFactor and aliases are exposed through PHP 8.4 property hooks as read-only
virtual properties. Access them as properties, not method calls:
$foot->conversionFactor; // 0.3048
$foot->aliases; // ['ft', ...]
$foot->name; // "ft"
Where units are defined
Units are registered inside each quantity's initialise() method using addUnit(). The
first unit added becomes the native unit. See
Adding new quantities for how to define units for a new quantity
type.