php-tool-kit / array-to-object
Converte recursivamente arrays para objetos stdClass.
Requires
- php: >=8.5.7
Requires (Dev)
- pestphp/pest: 5.x-dev
- pestphp/pest-plugin-type-coverage: 5.x-dev
- phpstan/extension-installer: 1.4.x-dev
- phpstan/phpstan: 2.2.x-dev
- squizlabs/php_codesniffer: 4.x-dev
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-10 16:53:21 UTC
README
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 (
0→key_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.