تحويل JSON إلى PHP class

تكتب الأداة صنفا final لكل كائن، مفيدا في Laravel وSymfony وأي مشروع PHP حديث.

جارٍ تحميل الأداة…

المعالجة والخصوصية: تُحسب النتيجة داخل متصفحك ولا تُرسل بياناتك إلى أي خادم.

طريقة الاستخدام

  1. أدخل نص JSON واسم النوع الرئيسي.
  2. تظهر النتيجة فورًا وتتحدّث مع كل تعديل.
  3. انسخ النتيجة، أو انسخ رابطًا يحفظ القيم نفسها لمشاركتها.

طريقة الحساب

int وfloat وstring وbool وarray وmixed، وصنف final لكل كائن بخصائص public مكتوبة النوع. الحقل الذي يقبل null أو يغيب يصبح ?T بقيمة null، ونوع عناصر المصفوفة يكتب في تعليق @var مثل list<string>.

مثال

المدخلات: اسم النوع الرئيسي = Root. النتيجة: الكود الناتج: <?php declare(strict_types=1); final class Root { public int $id; public string $name; public string $email; public bool $isActive; // JSON key: "is_active" public float $balance; /** @var list<string> */ public array $tags; public Address $address; /** @var list<Order> */ public array $orders; } final class Address { public string $city; public string $postalCode; // JSON key: "postal_code" } final class Order { public string $orderId; // JSON key: "order_id" public float $total; public ?string $coupon = null; }، عدد الأنواع: 3، عدد الحقول: 13.

{
  "id": 1024,
  "name": "Sara Ahmed",
  "email": "sara@example.com",
  "is_active": true,
  "balance": 1520.75,
  "tags": ["vip", "riyadh"],
  "address": { "city": "Riyadh", "postal_code": "12211" },
  "orders": [
    { "order_id": "A-1", "total": 99.5, "coupon": "EID10" },
    { "order_id": "A-2", "total": 120, "coupon": null }
  ]
}
<?php

declare(strict_types=1);

final class Root
{
    public int $id;
    public string $name;
    public string $email;
    public bool $isActive; // JSON key: "is_active"
    public float $balance;
    /** @var list<string> */
    public array $tags;
    public Address $address;
    /** @var list<Order> */
    public array $orders;
}

final class Address
{
    public string $city;
    public string $postalCode; // JSON key: "postal_code"
}

final class Order
{
    public string $orderId; // JSON key: "order_id"
    public float $total;
    public ?string $coupon = null;
}

الحدود والملاحظات

  • يحتاج PHP 8.0 أو أحدث بسبب النوع mixed.
  • الأصناف لا تملأ نفسها من JSON، فاستخدم json_decode ثم عين الخصائص أو مكتبة hydration.

أسئلة شائعة عن هذه الأداة

لماذا نوع المصفوفة array مع تعليق @var؟

PHP لا تدعم أنواع العناصر داخل array، لذلك يكتب النوع في تعليق تفهمه أدوات مثل PHPStan وPsalm.

لماذا أصبح اسم الصنف ListItem بدل List؟

list كلمة محجوزة في PHP ولا تصلح اسما لصنف، فيضاف لها Item.

هل ترسل بياناتي إلى خادم؟

لا، التحويل يعمل داخل متصفحك ولا يغادر نص JSON جهازك.