Convert units of measure in Laravel.
You can install the package via composer:
composer require sfolador/measures-for-laravel
You can publish the config file with:
php artisan vendor:publish --tag="measures-for-laravel-config"
use \Sfolador\Measures\Measures;
use \Sfolador\Measures\Unit\Length\Length;
\Sfolador\Measures\Unit\Weight\Weight;
$measure = Measures::length("2.0m");
echo $measures->toCm(); // 200.0 cm
//or you can use the Length class directly
$length = Length::from("2.0m");
echo $length->toCm(); // 200.0 cm
$measure = Measures::weight("2.0Kg");
echo $measures->toG(); // 2000.0 g
//or you can use the Weight class directly
$length = Weight::from("2.0Kg");
echo $length->toG(); // 2000.0 g
It's possible to use also extended fluent methods:
$measure = Length::from("2.0m");
echo $measures->toCentimeters(); // 200 cm
//you can chain the methods:
echo Length::from("2.0m")->toCentimeters(); // 200 cm
If you do not know which kind of measure you are dealing with, you can use the Measures
class to
automatically detect the type of measure:
$measure = Measures::from("2.0m"); // $measure is an instance of Length
echo $measures->toCm(); // 200 cm
$measure = Measures::from("2.0Kg"); // $measure is an instance of Weight
echo $measures->toG(); // 2000 g
It's possible to cast a model attribute to a measure:
use \Sfolador\Measures\Unit\Weight\Weight;
use Sfolador\Measures\Cast\Measure;
class Product extends Model
{
protected $casts = [
'weight' => Measure::class,
'length' => Measure::class,
];
}
$product = Product::first();
echo $product->weight->toKg(); // 2 Kg
echo $product->length->toCm(); // 200 cm
$product->weight = Weight::from("3.0Kg");
$product->length = Length::from("1.0m");
$product->save();
echo $product->weight->toKg(); // 3 Kg
echo $product->length->toCm(); // 100 cm
- Millimeter
- Centimeter
- Meter
- Kilometer
- Inch
- Foot
- Yard
- Mile
- Nautical mile
- Milligram
- Gram
- Kilogram
- Ton
- Ounce
- Pound
- Stone
- Long ton
- Short ton
- Milliliter
- Liter
- Cubic meter
- Cubic inch
- Cubic foot
- Gallon
- Pint
- Cup
- Celsius
- Fahrenheit
- Kelvin
- Square meter
- Square kilometer
- Square centimeter
- Square millimeter
- Square inch
- Square foot
- Square yard
- Square mile
- Acre
- Hectare
- Bit
- Byte
- Kilobit
- Kilobyte
- Megabit
- Megabyte
- Gigabit
- Gigabyte
- Terabit
- Terabyte
- Petabit
- Petabyte
- kibibit
- kibibyte
- mebibit
- mebibyte
- gibibit
- gibibyte
- tebibit
- tebibyte
- pebibit
- pebibyte
- Meter per second
- Kilometer per hour
- Mile per hour
- Knot
- Foot per second
- Mach
- Nanosecond
- Microsecond
- Millisecond
- Second
- Minute
- Hour
- Day
- Week
- Month
- Year
- Pascal
- Kilopascal
- Bar
- Millibar
- Atmosphere
- Torr
- Pound per square inch
- Millimeter of mercury
- Joule
- Kilojoule
- Megajoule
- Gigajoule
- Watt hour
- Kilowatt hour
- Megawatt hour
- Gigawatt hour
- Calorie
- Kilocalorie
- Megacalorie
- Gigacalorie
- Electronvolt
- Kiloelectronvolt
- Megaelectronvolt
- Gigaelectronvolt
- Degree
- Radian
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.