mendesalexandre/numero-area-extenso

Biblioteca PHP para conversão de números e áreas para formato por extenso, especialmente para documentos imobiliários

Maintainers

Package info

github.com/mendesalexandre/numero-area-extenso

pkg:composer/mendesalexandre/numero-area-extenso

Statistics

Installs: 24

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-03-10 12:41 UTC

This package is auto-updated.

Last update: 2026-03-10 12:43:18 UTC


README

Latest Version on Packagist Total Downloads

Biblioteca PHP especializada para conversão de números e áreas para formato por extenso, ideal para geração de documentos imobiliários, escrituras e registros.

Características

  • Conversão de áreas completas (metros quadrados + centímetros quadrados)
  • Conversão de números simples para extenso
  • Suporte a palavra feminina/masculina
  • Singular/plural automático das unidades de medida
  • Formatação adequada para documentos oficiais ("um mil" em vez de "mil")
  • Zero dependências externas
  • PSR-4 compatível
  • Testado com PHPUnit

Instalação

composer require mendesalexandre/numero-area-extenso

Uso

use NumeroAreaExtenso\NumeroAreaPorExtenso;

// Área completa (metros quadrados + centímetros quadrados)
NumeroAreaPorExtenso::converteAreaCompleta('1207,35');
// "um mil e duzentos e sete metros quadrados, três mil e quinhentos centímetros quadrados"

NumeroAreaPorExtenso::converteAreaCompleta('360,00');
// "trezentos e sessenta metros quadrados"

// Aceita formatação com ponto de milhares
NumeroAreaPorExtenso::converteAreaCompleta('1.500,75');
// "um mil e quinhentos metros quadrados, sete mil e quinhentos centímetros quadrados"

// Apenas metros quadrados
NumeroAreaPorExtenso::converteMetrosQuadrados(250);
// "duzentos e cinquenta metros quadrados"

NumeroAreaPorExtenso::converteMetrosQuadrados(1);
// "um metro quadrado"

// Apenas centímetros quadrados
NumeroAreaPorExtenso::converteCentimetrosQuadrados(1500);
// "um mil e quinhentos centímetros quadrados"

// Números simples (lotes, quadras, etc.)
NumeroAreaPorExtenso::converteNumero(15);
// "quinze"

NumeroAreaPorExtenso::converteNumero(1000);
// "um mil"

// Forma feminina
NumeroAreaPorExtenso::converteNumero(1, true);
// "uma"

NumeroAreaPorExtenso::converteNumero(301, true);
// "trezentas e uma"

// Remover formatação de números brasileiros
NumeroAreaPorExtenso::removerFormatacaoNumero('R$ 1.000,50');
// "1000.50"

Exemplo prático - Documento imobiliário

use NumeroAreaExtenso\NumeroAreaPorExtenso;

$lote = 7;
$quadra = 12;
$area = '450,75';

$texto = sprintf(
    'LOTE %d (%s), QUADRA %d (%s), com área de %s m² (%s)',
    $lote,
    NumeroAreaPorExtenso::converteNumero($lote),
    $quadra,
    NumeroAreaPorExtenso::converteNumero($quadra),
    $area,
    NumeroAreaPorExtenso::converteAreaCompleta($area)
);

// LOTE 7 (sete), QUADRA 12 (doze), com área de 450,75 m²
// (quatrocentos e cinquenta metros quadrados, sete mil e quinhentos centímetros quadrados)

Veja mais exemplos em examples/documento-imobiliario.php.

Testes

composer test

Licença

MIT