تم إصدار PHP 8.4: أبرز الميزات الجديدة وتحسينات الأداء
كان مجتمع المطورين ينتظر هذه اللحظة بفارغ الصبر — تم إصدار PHP 8.4 رسميًا. يمثل هذا الإصدار خطوة كبيرة إلى الأمام للغة التي لا تزال تشكل الأساس لملايين المواقع والتطبيقات. في الإصدار الجديد، حصل المطورون على ميزات طال انتظارها، وأداء محسّن، ومجموعة من التغييرات التي تسهل كتابة الكود. دعنا نستعرض ما تغير بالضبط.
الميزات الرئيسية الجديدة في PHP 8.4
1. Property Hooks (خطافات الخصائص)
واحدة من أكثر الميزات الجديدة التي تمت مناقشتها هي property hooks. الآن يمكنك تحديد منطق الحصول (get) وتعيين (set) قيم الخصائص مباشرة في تعريفها، دون الحاجة إلى كتابة getters و setters بشكل منفصل. هذا يجعل الكود أنظف ويقلل من كمية الكود النمطي.
- مثال:
public string $name { set => strtoupper($value); } - يسهل تنفيذ الخصائص المحسوبة.
- يحسن قابلية القراءة والصيانة للكلاسات.
2. الرؤية غير المتماثلة (Asymmetric Visibility)
يسمح PHP 8.4 بتعيين مستويات وصول مختلفة للقراءة والكتابة للخصائص. على سبيل المثال، يمكنك جعل الخاصية عامة للقراءة، ولكن محمية للكتابة. هذا مفيد بشكل خاص لإنشاء APIs صارمة وتغليف البيانات.
- الصيغة:
public private(set) string $title; - يعزز أمان البيانات.
- يقلل الحاجة إلى استخدام getters للتحكم في الوصول.
3. تحسينات في الترجمة في الوقت المناسب (JIT)
مُجمّع JIT (Just-In-Time)، الذي ظهر لأول مرة في PHP 8.0، حصل على تحسينات كبيرة. في الإصدار 8.4، تم تحسين العمل مع المصفوفات والحلقات، مما يعطي زيادة في الأداء في المهام كثيفة الاستخدام للموارد — من معالجة الصور إلى العمليات الحسابية المعقدة.
- زيادة في السرعة في بعض المعايير تصل إلى 15-20%.
- تكامل أفضل مع opcache.
- تقليل استهلاك الذاكرة في العمليات طويلة العمر.
4. صياغة جديدة لإنشاء الكائنات بدون أقواس
الآن يمكنك إنشاء كائنات بدون أقواس دائرية إذا كان المنشئ لا يتطلب معاملات. هذا يجعل الكود أكثر إيجازًا.
- كان سابقًا:
$obj = new MyClass(); - أصبح الآن:
$obj = new MyClass; - مفيد بشكل خاص في سلاسل الاستدعاءات:
$obj = new MyClass->method();
5. معالجة محسنة للأخطاء وسمات جديدة
تمت إضافة سمات مدمجة جديدة، مثل #[Deprecated]، والتي تسمح بوضع علامة صريحة على الطرق والدوال القديمة. هذا يبسط عملية إعادة الهيكلة وصيانة قاعدة الكود.
- تحذير تلقائي عند استدعاء الطرق القديمة.
- إمكانية تحديد البديل في رسالة الخطأ.
- تكامل أفضل مع IDEs والمحللات الثابتة.
ماذا يعني هذا للمطورين؟
PHP 8.4 ليس مجرد مجموعة من الميزات الجديدة. إنها خطوة نحو لغة أكثر حداثة وأمانًا وأداءً. تعمل property hooks والرؤية غير المتماثلة على خفض حاجز الدخول للمبتدئين وزيادة المرونة