JSON у PHP клас
Перетворіть приклад JSON у типізований PHP клас з конструктором, fromArray і toArray.
JSON у PHP клас
Вставте об'єкт JSON або масив, і цей інструмент визначить тип кожного поля, потім створить готовий до використання PHP клас: типізовані властивості, конструктор, статичний фабричний метод fromArray() і метод toArray() для перетворення об'єкту назад у звичайний масив. Вкладені об'єкти автоматично стають власними класами, і однакові структури повторно використовуються замість дублювання, тому корисне навантаження з кількома подібно структурованими розділами все ще створює компактний файл.
Ім'я класу і простір імен називають кореневий клас і опціонально обгортають його у простір імен PHP. Promoted конструктор PHP 8 записує властивості безпосередньо в сигнатуру конструктора замість їх окремого оголошення — вимкніть його для класичного явного конструктора. Створити гетери і сетери додає методи доступу (isX() для логічних значень, getX()/setX() для решти) замість прямого доступу до властивостей. declare(strict_types=1) додає заголовок суворих типів PHP, а коментарі docblock анотують кожну властивість її передбачуваним типом. Поля масиву визначають, типізується чи список як звичайний масив або задокументовано типом його елементів, наприклад string[], оскільки PHP не має узагальнень для цього в підказці типів.
Поле, яке розглядається як null або відсутнє в деяких елементах масиву об'єктів, генерується як nullable — з безпечною перевіркою isset() коли потрібно побудувати вкладений об'єкт або відобразити список, та null-coalescing за замовчуванням у протилежному випадку. Ключ, який конфліктує з зарезервованим словом PHP або починається з цифри, перейменовується на допустиме ім'я властивості, і кожна створена властивість зберігає оригінальний ключ JSON як свій ключ масиву в fromArray() і toArray().
Усе працює локально у вашому браузері — JSON який ви вставляєте, може включати реальні відповіді API або дані конфігурації, ніколи не завантажується ніде. Скопіюйте створений клас, завантажте його як файл .txt або відправте результат назад на введення для подальшого уточнення.