JSON ke PHP Class
Hasilkan kelas PHP bertipe dari JSON, langsung di browser Anda.
Untuk apa alat ini
JSON ke kelas PHP bertipe
PHP 8.x modern
Menghasilkan kode dengan constructor promotion, readonly properties, dan typed properties mengikuti praktik terbaik PHP modern.
100% privat
JSON Anda (yang mungkin berisi data sensitif) diproses hanya di browser Anda. Tidak pernah dikirim ke server mana pun.
Pengetikan yang tepat
Mendeteksi string, int, float, bool, dan null secara otomatis. Field opsional ditandai sebagai nullable (?tipe).
Instan
Kelas PHP siap dalam milidetik. Tanpa daftar, tanpa menunggu, tanpa batas.
Cara kerjanya
Tiga langkah, tanpa kerumitan
Tempel JSON Anda
Tempel objek JSON apa pun, sederhana maupun bertingkat. Alat ini menganalisis struktur dan tipe data secara otomatis.
Kelas PHP dihasilkan
Anda mendapatkan kelas PHP dengan properti bertipe (PHP 7.4+), constructor promotion (PHP 8.0+), dan metode getter opsional.
Salin dan gunakan
Salin kode dengan satu klik dan tempel ke proyek Anda. Kompatibel dengan Laravel, Symfony, atau PHP murni.
FAQ
Ada pertanyaan?
PHP 7.4 (dirilis November 2019) memperkenalkan properti bertipe, memungkinkan Anda mendeklarasikan tipe setiap properti langsung di dalam kelas: public int $id; public string $name; public ?float $price;. Ini adalah peningkatan mendasar dibanding versi sebelumnya di mana tipe hanya bisa didokumentasikan di PHPDoc. Properti bertipe meningkatkan deteksi error saat runtime, keterbacaan kode, dan memungkinkan IDE menawarkan autokomplit yang lebih baik. Tipe nullable (dengan ?) menandakan properti dapat bernilai null, berguna untuk field JSON opsional.
Constructor promotion (promosi properti konstruktor), diperkenalkan di PHP 8.0 (2020), memungkinkan pendefinisian dan pengisian properti langsung di parameter konstruktor, menghilangkan redundansi. Alih-alih mendeklarasikan properti, mencantumkannya di konstruktor, lalu mengisinya di body, Anda cukup menulis: public function __construct(public readonly string $name, public int $age) {}. Ini mengurangi kode boilerplate secara drastis dan merupakan pola yang disukai di PHP modern, terutama untuk Value Object dan DTO.
Metode getter standar dihasilkan mengikuti konvensi PHP: getName(), getId(), getPrice(). Getter mengenkapsulasi akses ke properti private atau protected, memungkinkan logika transformasi ditambahkan di masa depan tanpa mengubah antarmuka publik kelas. Jika Anda menggunakan constructor promotion dengan properti public atau readonly, getter bersifat opsional. Untuk properti private, getter adalah satu-satunya cara mengakses nilai dari luar kelas.
Model Eloquent memperluas Illuminate\Database\Eloquent\Model dan dirancang untuk merepresentasikan rekaman basis data dengan ORM terintegrasi. Kelas PHP biasa (POPO, Plain Old PHP Objects) lebih cocok untuk DTO (Data Transfer Object), respons API, atau ketika tidak ada persistensi yang terlibat. Jika Anda mengonsumsi API eksternal dan ingin memodelkan respons JSON-nya, kelas PHP biasa yang dihasilkan alat ini adalah pilihan yang tepat. Laravel API Resources (diperkenalkan di Laravel 5.5) juga menggunakan kelas biasa untuk mengubah model Eloquent ke JSON.
Untuk setiap objek bertingkat dalam JSON, kelas PHP terpisah dihasilkan. Misalnya, jika JSON memiliki struktur dengan field user yang berisi address yang berisi city bertipe string, tiga kelas dihasilkan: kelas root dengan properti $user bertipe User, kelas User dengan properti $address bertipe Address, dan kelas Address dengan properti $city bertipe string. Ini mengikuti prinsip tanggung jawab tunggal dan memetakan struktur API yang kompleks dengan benar. Array objek diketik sebagai array dengan tipe elemen di PHPDoc.
Evolusi PHP 8.x, Laravel API resources, dan Symfony serializer
PHP telah berkembang pesat dari PHP 7.0 (2015) hingga PHP 8.3 (2023). PHP 7.4 memperkenalkan typed properties dan operator nullsafe. PHP 8.0 membawa union types, named arguments, match expressions, dan constructor promotion. PHP 8.1 menambahkan readonly properties, enum native, fibers, dan intersection types. PHP 8.2 memperkenalkan readonly classes dan disjunctive normal form types. PHP 8.3 melengkapi readonly dengan readonly properties di kelas anonim. Evolusi ini mengubah PHP menjadi bahasa dengan static typing opsional yang sebanding dengan TypeScript atau Kotlin.
Dalam ekosistem Laravel (framework PHP paling populer dengan lebih dari 75 juta unduhan), API Resources (diperkenalkan di Laravel 5.5, 2017) adalah cara standar untuk mengubah model Eloquent menjadi respons JSON. Mereka memperluas Illuminate\Http\Resources\Json\JsonResource dan memungkinkan kontrol tepat atas field yang diekspos. Untuk sisi sebaliknya (mengonsumsi API eksternal), DTO yang diimplementasikan sebagai kelas PHP biasa adalah pola yang direkomendasikan. Paket seperti spatie/laravel-data (2021) menggabungkan kedua konsep: sebuah kelas yang dapat bertindak sebagai DTO sekaligus API Resource.
Komponen Serializer Symfony (digunakan juga oleh API Platform, framework PHP paling canggih untuk REST/GraphQL API) dapat melakukan serialisasi dan deserialisasi objek PHP ke/dari JSON, XML, YAML, dan CSV. Ia menggunakan anotasi, atribut PHP 8, atau konfigurasi YAML untuk memetakan properti. JMS Serializer adalah alternatif populer lainnya. Dalam proyek yang mengonsumsi API, pola menghasilkan kelas PHP dari JSON lalu menggunakan Symfony Serializer untuk menghidrasinya (deserialisasi) adalah alur kerja profesional yang memisahkan lapisan transport (JSON) dari lapisan domain (objek PHP) dengan bersih.