Tres modos de salida PHP
El modo array asociativo PHP convierte objetos JSON en literales de array PHP usando la sintaxis estándar array() o la sintaxis corta []. Es la salida más simple y no requiere definiciones de clase — ideal para archivos de configuración, fixtures y scripts de una sola vez.
El modo stdClass usa el estilo de salida de json_decode($json), representando cada objeto JSON como un objeto PHP anónimo con propiedades públicas. Esto refleja lo que devuelve el json_decode() integrado de PHP cuando el segundo argumento es false (el valor predeterminado).
El modo clase tipada genera definiciones de clase PHP con propiedades públicas tipadas usando los tipos union y nullable de PHP 8+. Cada objeto JSON se convierte en una clase con un constructor que establece todas las propiedades, fuertemente tipado con int, float, string, bool, array y ?T para campos nullable.
Sistema de tipos PHP 8 y convenciones de nomenclatura
PHP 8 introdujo la promoción de propiedades en el constructor y los tipos union. El generador usa la promoción de constructor por defecto — propiedades declaradas directamente en la firma del constructor con visibilidad y tipo — reduciendo el código repetitivo al mínimo.
Las claves JSON se convierten a identificadores PHP válidos siguiendo la convención camelCase. Las claves que comienzan con dígitos se prefijan con guión bajo. Las palabras reservadas PHP usadas como nombres de propiedad también se prefijan con guión bajo y un comentario doc registra la clave original.
Para propiedades nullable el generador emite ?string, ?int, ?float, ?bool y ?NombreClase. Los tipos union de PHP 8.0+ (string|null, int|float) se usan cuando un campo contiene tipos mixtos entre los elementos de un array.
Flujos de trabajo de Laravel y Symfony
Los desarrolladores Laravel frecuentemente necesitan definir atributos de modelos Eloquent desde formas de respuesta de API. La salida de clase tipada te da una clase PHP tipada que refleja el contrato de API, útil como DTO entre clases de servicio.
Los desarrolladores Symfony que usan el componente Serializer o API Platform pueden integrar directamente las clases tipadas generadas en su proyecto. Las clases son compatibles con el componente PropertyAccess de Symfony.
Los desarrolladores PHP que construyen plugins de WordPress, módulos de Drupal o scripts independientes frecuentemente necesitan deserializar respuestas JSON de API. La salida de array es la integración más rápida, sin autoloading requerido.