laravel-enso/unit-conversion 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

laravel-enso/unit-conversion

最新稳定版本:2.0.5

Composer 安装命令:

composer require laravel-enso/unit-conversion

包简介

Unit conversion services for Laravel Enso

README 文档

README

License Stable Downloads PHP Issues Merge Requests

Description

Unit Conversion provides small, focused services for converting values between related measurement units.

The package organizes conversions by measurement family and supports both object-based and expression-based inputs. It is designed for deterministic numeric conversions such as length, mass, energy, and electrical power.

Internally, each unit declares a label, a symbol, and a conversion factor, while the conversion services discover compatible units automatically from the package structure.

Installation

Install the package:

composer require laravel-enso/unit-conversion

No publishing or runtime configuration is required.

Features

  • Supports conversion by measurement family through dedicated converter services.
  • Supports direct conversion from unit objects.
  • Supports conversion from string expressions such as 2 m or 15 kg.
  • Includes built-in families for length, mass, energy, and power.
  • Uses decimal arithmetic helpers for precise multiplication and division.
  • Rejects incompatible conversions between different families.
  • Validates input expressions and unit symbols before converting.

Usage

Convert through a converter service:

use LaravelEnso\UnitConversion\Length\Length;
use LaravelEnso\UnitConversion\Length\Units\Meter;
use LaravelEnso\UnitConversion\Length\Units\Millimeter;

$result = Length::from(new Meter(2))->to(Millimeter::class);

Convert from a string expression:

$result = Length::from('2 m')->to(Millimeter::class);

Convert directly to a unit class:

use LaravelEnso\UnitConversion\Mass\Units\Gram;
use LaravelEnso\UnitConversion\Mass\Units\Kilogram;

$result = Gram::from(new Kilogram(3));

You can also convert directly from an expression:

$result = Gram::from('3 kg');

::: warning Note Expression-based conversions must follow the <value> <symbol> format, for example 2 m, 3 kg, or 1.5 kcal.

If the expression is malformed, the symbol is unknown, or the source and destination units belong to different families, the package throws a dedicated exception. :::

API

Converter Services

Available families:

  • LaravelEnso\UnitConversion\Length\Length
  • LaravelEnso\UnitConversion\Mass\Mass
  • LaravelEnso\UnitConversion\Energy\Energy
  • LaravelEnso\UnitConversion\Electricity\Power

Common entry points:

  • from(Unit|string $from): static
  • to(string $class): string

Units

Every unit class implements:

  • label(): string
  • symbol(): string
  • factor(): float
  • value(): string
  • from(Unit|string $argument, ?int $precision = 2): string

Built-in units:

  • Length: Millimeter, Centimeter, Meter, Kilometer
  • Mass: Gram, Kilogram
  • Energy: Calorie, Kilocalorie, Joule
  • Power: Watt, KiloWatt

Expression Validation

LaravelEnso\UnitConversion\Services\Expression

Expected format:

<value> <symbol>

Examples:

  • 2 m
  • 100 kg
  • 1.5 kcal

Exceptions

The package exposes:

  • LaravelEnso\UnitConversion\Exceptions\Unit
  • LaravelEnso\UnitConversion\Exceptions\Conversion
  • LaravelEnso\UnitConversion\Exceptions\Expression

API

This package exposes its backend integration through the routes, controllers, services, jobs, and configuration points referenced in the usage examples above.

Consumers should rely on the published config keys, documented route groups, and explicit service classes shown in the examples. Internal helper classes, listeners, casts, and background jobs are implementation details unless the README calls them out as extension points.

Depends On

Required Enso packages:

Contributions

are welcome. Pull requests are great, but issues are good too.

Thank you to all the people who already contributed to Enso!

统计信息

  • 总下载量: 4.49k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 3
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-10-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固