lase-peco / unit-converter
一个简单的单位转换器。
Requires
- php: ^7.4|^8.0
Requires (Dev)
- orchestra/testbench: ^6.20
- phpunit/phpunit: ^9.5
- vimeo/psalm: ^4.9
This package is auto-updated.
Last update: 2024-09-17 14:22:39 UTC
README
一个简单的单位转换器库
安装
通过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)。有关更多信息,请参阅许可文件。