انتقل إلى محتوى الدرس

Modern PHP 8.4 Domain Modeling Table جدول ميزات نمذجة البيانات في PHP 8.4

ابنِ نماذج بيانات قوية في PHP 8.4 باستخدام التعدادات Enums والأصناف للقراءة فقط readonly وخطافات الخصائص الحديثة.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

اجمع بين التعدادات (Enums) والأصناف للقراءة فقط (Readonly) وخطافات الخصائص والرؤية غير المتماثلة لبناء نماذج بيانات حديثة ومحمية ذاتياً في PHP 8.4.

  • استخدم التعدادات المدعومة (Backed Enums) لتمثيل الحالات المحدودة كالأدوار والعملات وحالات الطلبات.
  • استخدم readonly class لكائنات القيم الثابتة وطلبات API وبيانات الأحداث التي لا تتغير بعد إنشائها.
  • استخدم خطافات الخصائص وpublic private(set) في PHP 8.4 للكيانات القابلة للتحديث المنضبط عبر دوال الصنف.

يجمع الصنف SubscriptionSnapshot بين readonly class والتعداد المدعوم PlanTier لضمان سلامة النوع والحالة معاً.

الميزة البرمجيةإصدار PHPحالة الاستخدام الأساسية
Pure & Backed enumPHP 8.1+Fixed set of states, roles, or types (tryFrom)
readonly propertiesPHP 8.1+Write-once immutable object properties
readonly classPHP 8.2+Full immutable DTOs and Value Objects
Property Hooks (get / set)PHP 8.4+Inline normalization and computed properties
Asymmetric Visibility (public private(set))PHP 8.4+Public read access with private/protected mutation

PHP
<?php
enum PlanTier: string { case Free = "free"; case Pro = "pro"; }
readonly class SubscriptionSnapshot {
    public function __construct(public string $account, public PlanTier $tier) {}
}
$sub = new SubscriptionSnapshot("acc_402", PlanTier::from("pro"));
echo "{$sub->account} is on {$sub->tier->name} ({$sub->tier->value})\n";
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

اجمع بين التعدادات (Enums) والأصناف للقراءة فقط (Readonly) وخطافات الخصائص والرؤية غير المتماثلة لبناء نماذج بيانات حديثة ومحمية ذاتياً في PHP 8.4. استخدم التعدادات المدعومة (Backed Enums) لتمثيل الحالات المحدودة كالأدوار والعملات وحالات الطلبات. استخدم readonly class لكائنات القيم الثابتة وطلبات API وبيانات الأحداث التي لا تتغير بعد إنشائها. استخدم خطافات الخصائص وpublic private(set) في PHP 8.4 للكيانات القابلة للتحديث المنضبط عبر دوال الصنف.