Drei PHP-Ausgabemodi
Der assoziative PHP-Array-Modus konvertiert JSON-Objekte in PHP-Array-Literale mit der Standard-array()-Syntax oder der Kurzsyntax []. Das ist die einfachste Ausgabe und erfordert keine Klassendefinitionen — ideal für Konfigurationsdateien, Fixtures und Einmal-Skripte.
Der stdClass-Modus verwendet den json_decode($json)-Ausgabestil und repräsentiert jedes JSON-Objekt als anonymes PHP-Objekt mit öffentlichen Eigenschaften. Das spiegelt wider was PHPs eingebautes json_decode() zurückgibt wenn das zweite Argument false ist.
Der typisierte Klassenmodus generiert PHP-Klassendefinitionen mit typisierten öffentlichen Eigenschaften unter Verwendung der Union- und nullable Typen von PHP 8+. Jedes JSON-Objekt wird zu einer Klasse mit Konstruktor der alle Eigenschaften setzt, stark typisiert mit int, float, string, bool, array und ?T für nullable Felder.
PHP-8-Typsystem und Namenskonventionen
PHP 8 hat Constructor Property Promotion und Union-Typen eingeführt. Der Generator verwendet standardmäßig Constructor Promotion — Eigenschaften direkt in der Konstruktor-Signatur mit Sichtbarkeit und Typ deklariert — was Boilerplate minimiert.
JSON-Schlüssel werden in gültige PHP-Bezeichner nach camelCase-Konvention umgewandelt. Schlüssel die mit Ziffern beginnen erhalten einen Unterstrich-Präfix. Reservierte PHP-Wörter als Eigenschaftsnamen erhalten ebenfalls einen Unterstrich-Präfix und ein Doc-Kommentar bewahrt den ursprünglichen Schlüssel.
Für nullable Eigenschaften gibt der Generator ?string, ?int, ?float, ?bool und ?Klassenname aus. PHP 8.0+ Union-Typen (string|null, int|float) werden verwendet wenn ein Feld gemischte Typen über Array-Elemente enthält.
Laravel- und Symfony-Workflows
Laravel-Entwickler müssen häufig Eloquent-Modellattribute aus API-Antwort-Formen definieren. Die typisierte Klassenausgabe gibt eine typisierte PHP-Klasse die den API-Vertrag widerspiegelt, nützlich als DTO zwischen Service-Klassen.
Symfony-Entwickler die den Serializer-Komponenten oder API Platform verwenden können die generierten typisierten Klassen direkt in ihr Projekt integrieren. Die Klassen sind mit Symfonys PropertyAccess-Komponente kompatibel.
PHP-Entwickler die WordPress-Plugins, Drupal-Module oder eigenständige Skripte erstellen müssen oft JSON-API-Antworten deserialisieren. Die Array-Ausgabe ist die schnellste Integration ohne Autoloading.