Trois modes de sortie PHP
Le mode tableau associatif PHP convertit les objets JSON en littéraux de tableau PHP avec la syntaxe array() standard ou la syntaxe courte []. C'est la sortie la plus simple et ne nécessite aucune définition de classe — idéal pour les fichiers de configuration, les fixtures et les scripts ponctuels.
Le mode stdClass utilise le style de sortie de json_decode($json), représentant chaque objet JSON comme un objet PHP anonyme avec des propriétés publiques. Cela reflète ce que retourne json_decode() intégré de PHP quand le deuxième argument est false (la valeur par défaut).
Le mode classe typée génère des définitions de classe PHP avec des propriétés publiques typées utilisant les types union et nullables de PHP 8+. Chaque objet JSON devient une classe avec un constructeur qui définit toutes les propriétés, fortement typé avec int, float, string, bool, array et ?T pour les champs nullables.
Système de types PHP 8 et conventions de nommage
PHP 8 a introduit la promotion de propriétés dans le constructeur et les types union. Le générateur utilise la promotion de constructeur par défaut — propriétés déclarées directement dans la signature du constructeur avec visibilité et type — réduisant le code répétitif au minimum.
Les clés JSON sont converties en identifiants PHP valides suivant la convention camelCase. Les clés commençant par des chiffres sont préfixées d'un underscore. Les mots réservés PHP utilisés comme noms de propriété sont aussi préfixés d'un underscore et un commentaire doc enregistre la clé originale.
Pour les propriétés nullables, le générateur émet ?string, ?int, ?float, ?bool et ?NomClasse. Les types union PHP 8.0+ (string|null, int|float) sont utilisés quand un champ contient des types mixtes entre les éléments d'un tableau.
Flux de travail Laravel et Symfony
Les développeurs Laravel ont souvent besoin de définir des attributs de modèle Eloquent depuis des formes de réponse API. La sortie classe typée vous donne une classe PHP typée qui reflète le contrat API, utile comme DTO entre les classes de service.
Les développeurs Symfony utilisant le composant Serializer ou API Platform peuvent intégrer directement les classes typées générées dans leur projet. Les classes sont compatibles avec le composant PropertyAccess de Symfony.
Les développeurs PHP construisant des plugins WordPress, des modules Drupal ou des scripts autonomes ont souvent besoin de désérialiser des réponses API JSON. La sortie tableau est l'intégration la plus rapide, sans autoloading requis.