DocumentosImagensMídiaFerramentas PDF

JSON para PHP Class Online

Gere classes PHP tipadas a partir de JSON, direto no seu navegador.

Processed in your browser

JSON para classe PHP tipada

PHP 8.x moderno

Gera código com constructor promotion, propriedades readonly e propriedades tipadas seguindo as melhores práticas do PHP moderno.

100% privado

Seu JSON (que pode conter dados sensíveis) é processado apenas no seu navegador. Nunca enviado a nenhum servidor.

Tipagem correta

Detecta automaticamente string, int, float, bool e null. Campos opcionais são marcados como nullable (?tipo).

Instantâneo

Classes PHP prontas em milissegundos. Sem cadastro, sem espera, sem limites.

Três passos, sem complicação

1

Cole seu JSON

Cole qualquer objeto JSON, simples ou aninhado. A ferramenta analisa a estrutura e os tipos de dados automaticamente.

2

Classe PHP gerada

Você recebe uma classe PHP com propriedades tipadas (PHP 7.4+), constructor promotion (PHP 8.0+) e métodos getter opcionais.

3

Copie e use

Copie o código com um clique e cole no seu projeto. Funciona com Laravel, Symfony ou PHP puro.

Ficou com dúvidas?

O PHP 7.4 (lançado em novembro de 2019) introduziu as propriedades tipadas, permitindo declarar o tipo de cada propriedade diretamente na classe: public int $id; public string $name; public ?float $price;. É uma melhoria fundamental em relação às versões anteriores, onde os tipos só podiam ser documentados no PHPDoc. Propriedades tipadas melhoram a detecção de erros em tempo de execução, a legibilidade do código e permitem que IDEs ofereçam melhor autocompletar. O tipo nullable (com ?) indica que a propriedade pode ser null, útil para campos opcionais do JSON.

O constructor promotion (promoção de propriedades no construtor), introduzido no PHP 8.0 (2020), permite definir e atribuir propriedades diretamente nos parâmetros do construtor, eliminando a redundância. Em vez de declarar a propriedade, listá-la no construtor e atribuí-la no corpo, você pode escrever: public function __construct(public readonly string $name, public int $age) {}. Isso reduz drasticamente o código repetitivo e é o padrão preferido no PHP moderno, especialmente para Value Objects e DTOs.

São gerados métodos getter padrão seguindo a convenção do PHP: getName(), getId(), getPrice(). Os getters encapsulam o acesso a propriedades privadas ou protegidas, permitindo adicionar lógica de transformação no futuro sem alterar a interface pública da classe. Se você usar constructor promotion com propriedades públicas ou readonly, os getters são opcionais. Para propriedades privadas, os getters são a única forma de acessar o valor de fora da classe.

Modelos Eloquent estendem Illuminate\Database\Eloquent\Model e são projetados para representar registros de banco de dados com ORM integrado. Classes PHP simples (POPOs, Plain Old PHP Objects) são mais indicadas para DTOs (Data Transfer Objects), respostas de API ou quando não há persistência envolvida. Se você está consumindo uma API externa e quer modelar a resposta JSON, uma classe PHP simples gerada com esta ferramenta é a escolha certa. Laravel API Resources (introduzidos no Laravel 5.5) também usam classes simples para transformar modelos Eloquent em JSON.

Para cada objeto aninhado no JSON, uma classe PHP separada é gerada. Por exemplo, se o JSON tiver {user: {address: {city: Salvador}}}, três classes são geradas: a classe raiz com a propriedade $user do tipo User, a classe User com a propriedade $address do tipo Address, e a classe Address com a propriedade $city do tipo string. Isso segue o princípio da responsabilidade única e mapeia corretamente estruturas complexas de API. Arrays de objetos são tipados como array com o tipo do elemento no PHPDoc.

A evolução do PHP 8.x, Laravel API Resources e o Serializer do Symfony

O PHP evoluiu dramaticamente do PHP 7.0 (2015) ao PHP 8.3 (2023). O PHP 7.4 introduziu propriedades tipadas e o operador nullsafe. O PHP 8.0 trouxe union types, named arguments, expressões match e constructor promotion. O PHP 8.1 adicionou propriedades readonly, enums nativos, fibers e intersection types. O PHP 8.2 apresentou classes readonly e tipos em forma normal disjuntiva. O PHP 8.3 completou o suporte readonly com propriedades readonly em classes anônimas. Essa evolução transforma o PHP em uma linguagem com tipagem estática opcional comparável ao TypeScript ou ao Kotlin.

No ecossistema Laravel (o framework PHP mais popular, com mais de 75 milhões de downloads), os API Resources (introduzidos no Laravel 5.5, em 2017) são a forma padrão de transformar modelos Eloquent em respostas JSON. Eles estendem Illuminate\Http\Resources\Json\JsonResource e permitem controlar exatamente quais campos expor. Para o lado oposto (consumir APIs externas), DTOs implementados como classes PHP simples são o padrão recomendado. Pacotes como spatie/laravel-data (2021) combinam os dois conceitos: uma classe que pode funcionar simultaneamente como DTO e como API Resource.

O componente Serializer do Symfony (usado também pelo API Platform, o framework PHP mais avançado para APIs REST/GraphQL) consegue serializar e desserializar objetos PHP para e a partir de JSON, XML, YAML e CSV. Ele usa anotações, atributos do PHP 8 ou configuração YAML para mapear propriedades. O JMS Serializer é outra alternativa popular. Em projetos que consomem APIs, o padrão de gerar classes PHP a partir de JSON e depois usar o Serializer do Symfony para hidratá-las (desserialização) é um fluxo de trabalho profissional que separa com clareza a camada de transporte (JSON) da camada de domínio (objetos PHP).