soandso / units
Meteorological unit converter
0.0.2
2026-06-22 16:45 UTC
Requires
- php: >=8.4
Requires (Dev)
- mockery/mockery: 2.0.x-dev
- phpunit/phpunit: ^13.3@dev
- squizlabs/php_codesniffer: 4.x-dev
This package is auto-updated.
Last update: 2026-06-22 16:47:34 UTC
README
PHP library for meteorological unit conversion.
Features
- Temperature conversion
- Wind speed conversion
- Atmospheric pressure conversion
- Precipitation conversion
- Distance conversion
- Support for strongly typed enums
- Fluent API
- Unit metadata registry
- Framework independent
- PHP 8.4+
Installation
Install via Composer:
composer require soandso/units
Quick Start
require __DIR__ . '/vendor/autoload.php'; use Soandso\Units\Bootstrap; Bootstrap::init();
Supported Quantities
Retrieve metadata for a quantity:
use Soandso\Units\Registry\Quantity; use Soandso\Units\Unit; $temperature = Quantity::get(Unit::TEMPERATURE); $temperature->name; $temperature->description; $temperature->class; $temperature->units;
Example output:
Temperature
Air temperature units
Soandso\Units\Value\Temperature
[
"C",
"F",
"K"
]
Temperature Conversion
Fluent API
use Soandso\Units\Value\Temperature; Temperature::c(20) ->toF() ->value(); //68
Generic Conversion
use Soandso\Units\Value\Temperature; use Soandso\Units\Enum\Temperature as TemperatureUnit; Temperature::c(20) ->convertTo(TemperatureUnit::F) ->value(); //68
Creating Values
Values can be created using named constructors:
Temperature::c(20); Temperature::f(68); Temperature::k(293.15);
Working with Value Objects
$temperature = Temperature::c(20); $temperature->value(); $temperature->unit()->value;
Available Quantities
Depending on installed version, the library may support:
- Temperature
- Pressure
- Wind Speed
- Precipitation
- Distance
- Visibility
- Humidity
- Cloud Base Height
Example:
use Soandso\Units\Enum\Unit; use Soandso\Units\Registry\Quantity; $quantity = Quantity::get(Unit::PRESSURE);
Registry
The registry provides metadata about all supported quantities.
use Soandso\Units\Registry\Quantity; $all = Quantity::all();
Example
use Soandso\Units\Value\Temperature; $celsius = Temperature::c(20); $celsius->toF()->value(); //68 $celsius->toK()->value(); //293.15
Requirements
- PHP 8.4+
- Composer
License
Grouping is licensed under the GPLv2 License (https://www.gnu.org/licenses/old-licenses/gpl-2.0.html).