ghianco / kuantia
There is no license information available for the latest version (1.0.0) of this package.
1.0.0
2025-09-08 23:23 UTC
README
# 📦 Kuantia — Conversor de Unidades Flexible para PHP **Kuantia** es un micro-SDK PHP que permite la **conversión entre unidades físicas** (masa, volumen, longitud, área, conteo) e incluso **equivalencias personalizadas** como cajas, packs o formatos comerciales. Ideal para soluciones de inventario, logística, e-commerce o sistemas con múltiples presentaciones de productos. --- ## 🧰 Instalación ```bash composer install ghianco/kuantia ``` 🚀 Uso Básico use Kuantia\Kuantia; use Kuantia\Magnitude\Mass; echo Kuantia::convert(1000, Mass::G, Mass::KG); // 1 📗 Unidades Soportadas 🔹 Mass (masa) t, kg, g, mg, lb, oz 🔹 Volume (volumen) ml, cl, dl, l, hl, oz, gal 🔹 Length (longitud) mm, cm, dm, m, km, in, ft, yd, mi 🔹 Area (área) mm2, cm2, m2, km2, in2, ft2, yd2 🔹 Count (conteo) und, par, doc, cien ⚙️ Ejemplos de Uso 🎯 Conversión directa use Kuantia\Magnitude\Volume; Kuantia::convert(1000, Volume::ML, Volume::L); // 1 Kuantia::convert(1, Volume::L, Volume::ML); // 1000 🧠 Equivalencias personalizadas (con UnitReference) use Kuantia\Magnitude\Count; use Kuantia\Magnitude\Volume; use Kuantia\UnitReference; $r = Kuantia::convert(1, Count::UND, UnitReference::create(750, Volume::ML)); echo "$r ml"; // 750 📦 Equivalencia como array use Kuantia\Magnitude\Count; use Kuantia\Magnitude\Mass; echo Kuantia::convert(1, Count::UND, [1000, Mass::G]); // 1000 g echo Kuantia::convert(2, Count::UND, [850, Mass::KG]); // 1700 kg 🧪 Validaciones ✅ Correcto UnitReference::create(750, 'ml'); ❌ Valor negativo UnitReference::create(-1, 'kg'); // Exception: Value must be positive ❌ Unidad inválida UnitReference::create(1, 'banana'); // Exception: Unidad no reconocida: banana 🔄 Conversión en lote (batch) use Kuantia\Kuantia; use Kuantia\Magnitude\Mass; use Kuantia\Magnitude\Volume; use Kuantia\Magnitude\Count; $cases = [ [5, Mass::OZ, Mass::KG], [1000, Mass::G, Mass::KG], [2, Mass::KG, Mass::G], [1, Mass::KG, Mass::OZ], [2, Mass::G, Mass::LB], [1, Mass::LB, Mass::G], [1000, Volume::ML, Volume::L], [3, Volume::L, Volume::ML], [1, Count::UND, [850, Mass::KG]], ]; foreach ($cases as [$value, $from, $to]) { try { $result = Kuantia::convert($value, $from, $to); echo "$value $from → $result $to\n"; } catch (\Exception $e) { echo "ERROR: {$e->getMessage()}\n"; } } 🧼 Diseño Limpio ✔️ Value Objects (UnitReference, UnitEquivalence) ✔️ Estrategia de conversión (UnitEquivalence, Direct, Graph) ✔️ Registry para manejar magnitudes registradas ✔️ Soporta extensibilidad futura 🏁 Conclusión Kuantia es: ✅ Simple de usar ✅ Extensible ✅ Seguro ✅ Ideal para apps con necesidades de conversión física entre unidades y formatos comerciales