Dev (Back & Front)ARTIGO

Convertendo diversos tipos de métricas com PHP Conversion

Convertendo diversos tipos de métricas com PHP Conversion
Imagem: Rodrigo "pokemaobr" Cardoso

Fala pessoal, tudo bom? Estamos de volta para falar de bibliotecas em PHP que são úteis no dia a dia. Uma coisa que sempre me deu trabalho ao desenvolver sistemas é a questão de conversão de medidas, já que alguns países por exemplo usam metros, outros milhas; o tamanho de sapatos também é algo que é diferente entre os países; as unidades de medidas de temperatura também; entre outros.

Hoje apresento para vocês a biblioteca crisu83/php-conversion uma biblioteca onde você pode converter várias métricas como: aceleração, ângulos, área, frequência, tamanho, força, tamanho de sapato, velocidade, volume, tamanho de chapéu, entre outros.

Vamos ver como a biblioteca funciona:

Criamos uma pasta conversion e instalamos a biblioteca pelo composer:

composer require crisu83/php-conversion

Vamos criar um exemplo de conversor de distância. Nomearemos como distance.php. No caso passaremos 999 metros como parâmetro.

<?php

require_once('vendor/autoload.php'); //autoload das classes

use Crisu83\Conversion\Quantity\Length\Length; //utilizando a classe Length
use Crisu83\Conversion\Quantity\Length\Unit as LengthUnit; //utitlizando a classe Unit

$length = new Length(999, LengthUnit::METRE); //criando uma variável com o valor 999 metros
echo $length . PHP_EOL; //exibe a variável em metros
echo $length->to(LengthUnit::FOOT) . PHP_EOL; //exibe a variável em pés
echo $length->to(LengthUnit::YARD) . PHP_EOL; //exibe a variável em jardas
echo $length->to(LengthUnit::MILE) . PHP_EOL; //exibe a variável em milhas
echo $length->to(LengthUnit::NAUTICAL_MILE) . PHP_EOL; //exibe a variável em milhas náuticas

Dando um distance.php temos:

Podemos fazer também um conversor de tamanho de sapato de crianças. Vamos usar como shoe.php

<?php

require_once('vendor/autoload.php'); //autoload das classes

use Crisu83\Conversion\Size\ShoeSize\ChildShoeSize;  //utilizando a classe ChildShoeSize
use Crisu83\Conversion\Size\ShoeSize\System as ShoeSizeSystem; //utilizando a classe ShoeSizeSystem

$shoeSize = new ChildShoeSize(20, ShoeSizeSystem::EUROPEAN); //criando uma variável com o tamanho 36 na forma européia
echo $shoeSize . PHP_EOL;
echo $shoeSize->to(ShoeSizeSystem::AMERICAN) . PHP_EOL; //exibe a variável com o tamanho 36 na forma americana
echo $shoeSize->to(ShoeSizeSystem::BRITISH) . PHP_EOL; //exibe a variável com o tamanho 36 na forma britânica

O legal dessa biblioteca é que ela tem diversos tipos de conversores para você usar. Espero que ajude na conversão das diversas unidades de medidas. Um grande abraço e até a próxima.

 

MBA em Engenharia de Softwares Orientado para Serviços pela Metrocamp, Campinas/SP. Bacharel em Matemática Aplicada e Computacional pela Universidade Federal Rural do Rio de Janeiro, Community Manager do iMasters. Programador PHP desde 2002. Evangelista PHPSP. Desenvolve sistemas desde batalhas Pokemon em mIRC, a robôs automatizadores de tarefas.

Ver perfil