lase-peco/unit-converter

一个简单的单位转换器。

1.2 2022-02-17 08:35 UTC

This package is auto-updated.

Last update: 2024-09-17 14:22:39 UTC


README

Latest Version on Packagist Total Downloads

一个简单的单位转换器库

安装

通过composer安装此包

composer require lase-peco/unit-converter

然后使用以下命令发布配置文件conversions.php

php artisan vendor:publish --provider="LasePeCo\UnitConverter\ServiceProvider"

配置文件conversions.php包含所有计量单位和其值。

定义自己的单位

首先在配置文件中添加您的单位及其匹配部分,然后建议创建一个扩展基本包类的类。

示例:假设您想添加KM^2作为面积单位,首先在配置文件中添加此单位

'area' => [
        'mm^2' => 1000000,
        'm^2' => 1, // base unit.
        'ft^2' => 10.7639,
        'yd^2' => 1.19598888894151,
        'km^2' => 0.000001, // your new unit and its value compared to the base unit.
    ],

然后在App\Units\中创建Area类,它应扩展此包的基本Area

<?php
namespace App\Units;
use LasePeCo\UnitConverter\Units\Area as BaseArea;

class Area extends BaseArea
{
    public const SquareKiloMeter = 'km^2';
}

我们建议使用这些类来避免代码中的错误。

用法

此包支持4个测量系统:公制英国美国英尺美国码

要获取所有支持的测量系统,可以在Converter外观上调用函数getSupportedSystems()

use LasePeCo\UnitConverter\Facades\Converter;

Converter::getSupportedSystems(); 

// return

 [
  'metrics'  => 'Metrics',
  'uk'       => 'UK',
  'us_feet'  => 'US feet',
  'us_yards' => 'US yards'
 ]

此包还可以转换面积密度长度质量体积体积流量速度,您可以在Converter外观上调用这些函数。每个函数都有其自己的类,其中单位定义为常量,以提供强类型。

所有这些函数都接受相同的参数

string $from_unit 要转换的单位。 string $to_unit 要转换到的单位。 float $measurement 值。 int $decimals(可选)小数精度。默认为2。

面积

实现的面积单位有:SquareMillimeter, SquareMeter, SquareFoot, SquareYard

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Area;

Converter::area(Area::SquareKiloMeter, Area::SquareMeter, 1); // return 1000000
Converter::area(Area::SquareMeter, Area::SquareYard, 10, 4); // return 11.9599

密度

实现的密度单位有:KilogramPerCubicMeter, TonPerCubicMeter, PoundPerCubicFoot

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Density;

Converter::density(Density::KilogramPerCubicMeter, Density::PoundPerCubicFoot, 1, 6); // return 0.062428

长度

实现的长度单位有:Millimeter, Meter, Inch

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Length;

Converter::length(Length::Meter, Length::Inch, 1, 4); // return 39.3701

质量

实现的质量单位有:Kilogram, Ton, ImperialTon, USTon, Pound, Gram, Ounce

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Mass;

Converter::mass(Mass::Kilogram, Mass::Pound, 1); // return 2.2

体积

实现的体积单位有:CubicDecimeter, CubicMeter, CubicFoot, CubicYard

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Volume;

Converter::volume(Volume::CubicMeter, Volume::CubicFoot, 1); // return 35.31

速度

实现的速度单位有:MillimeterPerSecond, MeterPerSecond, FootPerSecond, YardPerSecond

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\Speed;

Converter::speed(Speed::MeterPerSecond, Speed::FootPerSecond, 1); // return 3.28

体积流量

实现的体积流量单位有:CubicDecimeterPerHour, CubicMeterPerHour, CubicFootPerHour, CubicYardPerHour

use LasePeCo\UnitConverter\Facades\Converter;
use App\Units\VolumetricFlowRate;

Converter::volumetric_flow_rate(VolumetricFlowRate::CubicMeterPerHour, VolumetricFlowRate::CubicDecimeterPerHour, 1)); // return 1000

测试

composer test

贡献

有关详细信息,请参阅CONTRIBUTING

安全性

如果您发现任何安全问题,请通过电子邮件a.dabak@lase-peco.com联系,而不是使用问题跟踪器。

鸣谢

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件