Ugrás a tartalomhoz

JSON-ből PHP osztály

Alakítson egy JSON mintát típusos PHP osztállyá konstruktorral, fromArray és toArray metódusokkal.

Bemenet
Kimenet

JSON-ből PHP osztály

Illesszen be egy JSON objektumot vagy tömböt, és az eszköz minden mezőhöz típust vezet le, majd generál egy használatra kész PHP osztályt: típusos tulajdonságok, konstruktor, egy statikus fromArray() gyár és egy toArray() metódus az objektum visszaalakítására egyszerű tömbből. A beágyazott objektumok automatikusan saját osztályokká válnak, és az azonos alakzatok újrafelhasználódnak az ismétlés helyett, így egy több hasonló szerkezetű szakaszú hasznos teher még mindig kompakt fájlt hoz létre.

Az osztály neve és namespace neve a gyök osztályt nevezi meg, és opcionálisan egy PHP namespace-be burkolja azt. A PHP 8 promóciós konstruktor közvetlenül a konstruktor aláírásban írja a tulajdonságokat ahelyett, hogy külön deklarálná őket — kapcsolja ki a klasszikus explicit konstruktorhoz. A getter és setter generálása hozzáadja az akcesszor metódusokat (isX() logikai értékekhez, getX()/setX() egyébként) ahelyett, hogy közvetlenül kitenne a tulajdonságoknak. A declare(strict_types=1) hozzáadja a PHP szigorú típus fejlécét, és a docblock megjegyzések minden tulajdonságot megjegyznek az adott típusával. A tömb mezők meghatározzák, hogy egy lista egyszerű tömbként van-e típusozva, vagy az elem típusával dokumentálva van, például string[], mivel a PHP-nak nincsenek generikusai ehhez a típusjelzésben.

Egy mező, amely nullaként van látva, vagy hiányzik az objektumok tömbjének egyes elemeiből, nullázható típusként van generálva — egy biztonságos isset() ellenőrzéssel, ha egy beágyazott objektumot vagy listát kell felépítenie, és egy null-coalescing alapértelmezett értékkel egyébként. Egy olyan kulcs, amely ütközik a PHP kulcsszóval vagy számjeggyel kezdődik, egy érvényes tulajdonságnévvé lesz átnevezve, és minden generált tulajdonság megtartja az eredeti JSON-kulcsot mint tömb kulcsot a fromArray() és toArray()-ben.

Minden helyileg fut a böngészőjében — a beillesztett JSON, amely valós API-válaszokat vagy konfigurációs adatokat tartalmazhat, soha nincs feltöltve. Másolja a generált osztályt, töltse le .txt fájlként, vagy küldje vissza az outputot az inputba a finomításhoz.

Gyakori kérdések

Milyen PHP verzióra fordít a generált kód?
PHP 8.0 vagy később, mivel a promóciós konstruktor tulajdonságok és a vegyes típus PHP 8 funkciók. Kapcsolja ki a promóciós konstruktor opciót, ha PHP 7 kompatibilis outputra van szüksége.
Hogyan kezelkednek a beágyazott objektumok?
Minden különálló objektum alakzat saját osztállyá válik, saját fromArray() és toArray() metódusokkal. Két mező azonos alakzattal ugyanazt a generált osztályt újrafelhasználja az ismétlés helyett.
Mi történik egy mezővel, amely néha nulla vagy hiányzik?
Nullázható, típusos tulajdonságként van generálva. A skalár alapértelmezettje null a null-coalescing operátor segítségével; a beágyazott objektumok és az objektumok listái egy isset() ellenőrzést használnak, így a fromArray() soha nem hívja meg a metódust hiányzó adatokon.
Létrehozhatok több osztályt egy JSON mintából?
Igen. A minta minden beágyazott objektuma saját osztályokat hoz létre ugyanabban a fájlban, függőségi sorrendben, így a fájl azonnal használható.
A JSON-om valahol feltöltésre kerül?
Nem. Az osztály generálás teljes egészében a böngészőjében fut — a JSON soha nem hagyja el az eszközét.