PHP 8+ lightweight package

Unit conversion made simple for PHP.

UnitConverter is a small PHP library for converting length, mass, volume, temperature and area units with a clean and easy-to-use API.

use UnitConverter\UnitConverter;

$converter = new UnitConverter();

$result = $converter->convertLength(
    value: 1,
    from: 'km',
    to: 'm'
);

// 1000.00

Features

Simple API

Use direct methods like convertLength(), convertMass() and convertTemperature().

PHP 8+

The package targets modern PHP versions and can be installed using Composer.

Tested

Includes PHPUnit tests and a GitHub Actions workflow for automated checks.

Installation

Install the package using Composer:

composer require xxzeroxx/unit-converter

Basic Usage

<?php

require 'vendor/autoload.php';

use UnitConverter\UnitConverter;

$converter = new UnitConverter();

echo $converter->convertLength(100, 'cm', 'm'); // 1.00
echo $converter->convertMass(1000, 'g', 'kg'); // 1.00
echo $converter->convertVolume(1, 'm³', 'l'); // 1000.00
echo $converter->convertTemperature(0, 'C', 'F'); // 32.00
echo $converter->convertArea(1, 'm2', 'cm2'); // 10000.00

Available Methods

convertLength()

Length
public function convertLength(float $value, string $from, string $to, int $decimalPlaces = 2): float

Converts values between length units.

convertMass()

Mass
public function convertMass(float $value, string $from, string $to, int $decimalPlaces = 2): float

Converts values between mass units.

convertVolume()

Volume
public function convertVolume(float $value, string $from, string $to, int $decimalPlaces = 2): float

Converts values between volume units.

convertTemperature()

Temperature
public function convertTemperature(float $value, string $from, string $to, int $decimalPlaces = 2): float

Converts values between Celsius, Fahrenheit, Kelvin and Réaumur.

convertArea()

Area
public function convertArea(float $value, string $from, string $to, int $decimalPlaces = 2): float

Converts values between area units.

Supported Units

Category Units Example
Length m, km, cm, mm, µm, nm, mi, yd, ft, in convertLength(5, 'km', 'm')
Mass kg, g, mg, t, lb, oz convertMass(2, 'kg', 'lb')
Volume l, ml, gal, cup, oz, convertVolume(1, 'm³', 'l')
Temperature C, F, K, R convertTemperature(0, 'C', 'F')
Area m2, cm2, km2, ha, ac, ft2 convertArea(1, 'm2', 'ft2')

Error Handling

When a source or destination unit is not supported, the library throws an InvalidArgumentException.

try {
    $converter->convertLength(10, 'invalid', 'm');
} catch (InvalidArgumentException $exception) {
    echo $exception->getMessage();
}

Running Tests

Run the test suite with Composer:

composer test