Search by

php-tool-kit / array-to-object

everton3x

Converte recursivamente arrays para objetos stdClass.

dev-main 2026-09-10 16:50 UTC

This package is auto-updated.

Last update: 2026-09-10 16:53:21 UTC


README

PHP Version License PHPStan

Converte arrays (inclusive multidimensionais) em objetos stdClass de forma simples e recursiva. Ideal para transformar dados estruturados — como respostas de APIs, arquivos JSON decodificados ou registros de banco de dados — em objetos fácil de manipular.

Recursos

  • ✅ Conversão recursiva: todos os arrays internos também viram objetos
  • ✅ Tratamento automático de chaves numéricas (0key_0)
  • ✅ API simples e enxuta (apenas 2 métodos públicos/úteis)
  • ✅ Compatível com análise estática via PHPStan
  • ✅ Documentação completa em PHPDoc, em português

Requisitos

Dependência Versão
PHP ^8.5
Composer ^2.0

Instalação

Instale via Composer:

composer require php-tool-kit/array-to-object

Uso

Exemplo básico

use Ptk\ArrayToObject\ArrayToObject;

$conversor = new ArrayToObject([
    'nome'   => 'Maria',
    'email'  => 'maria@example.com',
    'ativo'  => true,
]);

$objeto = $conversor->convert();

echo $objeto->nome; // Maria

Arrays multidimensionais

Arrays internos são convertidos recursivamente em objetos:

$conversor = new ArrayToObject([
    'empresa' => [
        'razao_social' => 'Exemplo Ltda.',
        'endereco'     => [
            'cidade' => 'Campinas',
            'uf'     => 'SP',
        ],
    ],
]);

$objeto = $conversor->convert();

echo $objeto->empresa->endereco->cidade; // Campinas

Chaves numéricas

Como nomes de propriedades não podem iniciar com dígitos, chaves numéricas recebem automaticamente o prefixo key_:

$conversor = new ArrayToObject([
    'itens' => ['maçã', 'banana', 'laranja'],
]);

$objeto = $conversor->convert();

echo $objeto->itens->key_0; // maçã
echo $objeto->itens->key_1; // banana
echo $objeto->itens->key_2; // laranja

Definindo o array depois

Você pode instanciar sem argumento e passar o array apenas na chamada de convert():

$conversor = new ArrayToObject();

$objeto = $conversor->convert([
    'status' => 'ativo',
]);

Chamar convert() novamente sem argumento reutiliza o último array definido. Também é possível trocar o array a qualquer momento:

$objetoA = $conversor->convert(['valor' => 1]); // usa este array
$objetoB = $conversor->convert();               // reutiliza o mesmo array

Referência da API

__construct(?array $array = null)

Cria o conversor, permitindo definir o array logo na instanciação.

convert(?array $array = null): stdClass

Realiza a conversão e retorna o objeto resultante. Se um array for passado, ele substitui o array definido anteriormente.

Exceções:

  • \RuntimeException — lançada quando nenhum array foi definido (nem no construtor, nem no parâmetro, nem em chamadas anteriores).

Testes

Execute a suíte de testes com:

composer test

Análise estática

O código é totalmente compatível com o PHPStan:

./vendor/bin/phpstan analyse src --level=max

Licença

Distribuído sob a licença MIT.