mendesalexandre / numero-area-extenso
Biblioteca PHP para conversão de números e áreas para formato por extenso, especialmente para documentos imobiliários
Package info
github.com/mendesalexandre/numero-area-extenso
pkg:composer/mendesalexandre/numero-area-extenso
v1.1.0
2026-03-10 12:41 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9.0
README
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