JSON-ből PHP osztály
Alakítson egy JSON mintát típusos PHP osztállyá konstruktorral, fromArray és toArray metódusokkal.
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.