تم إصدار الإصدار الجديد PHP 8.4: ما الذي تغير ولماذا يجب التحديث
استقبل مجتمع المطورين الإصدار المنتظر PHP 8.4. لا يقدم هذا الإصدار تحسينات نقطية فحسب، بل يقدم أيضًا العديد من التغييرات الأساسية في بناء الجملة التي تغير طريقة كتابة الكود. إذا كنت تتابع النظام البيئي لتطوير الويب، فإن هذا الإصدار يمثل خطوة مهمة إلى الأمام. دعنا نستعرض أهم الميزات الجديدة.
خطافات الخصائص (Property Hooks): الإيجاز المنتظر
واحدة من أكثر الميزات الجديدة التي تمت مناقشتها هي خطافات الخصائص (property hooks). في السابق، لإضافة منطق عند الحصول على قيمة خاصية أو تعيينها، كان عليك كتابة دوال جلب (getters) ودوال تعيين (setters). الآن يمكن القيام بذلك مباشرة في تعريف الخاصية، مما يقلل من الكود النمطي.
- مثال: بدلاً من الدوال
getFullName()وsetFullName()، تكتبpublic string $fullName { get => ...; set => ...; }. - الفائدة: يصبح الكود أكثر قابلية للقراءة وأقرب إلى اللغات الحديثة (Kotlin, C#).
- المرونة: يمكن إعادة تعريف الخطافات في الفئات الفرعية، مما يبسط العمل مع الوراثة.
الرؤية غير المتماثلة (Asymmetric Visibility)
ميزة جديدة مهمة أخرى هي إمكانية تعيين مستويات وصول مختلفة لقراءة وكتابة الخاصية. في السابق، كان هذا يتطلب حلولاً بديلة أو دوال منفصلة.
- بناء الجملة:
public private(set) string $name;— يمكن قراءة الخاصية من أي مكان، ولكن يمكن تعديلها فقط داخل الفئة. - التطبيق: مثالي لكائنات القيمة (value objects) وكائنات نقل البيانات (DTO)، حيث من المهم حماية البيانات من التعديل الخارجي، مع إبقائها متاحة للقراءة.
تحسينات في الأنواع والأداء
يواصل مطورو PHP تعزيز نظام الأنواع وتحسين المحرك.
- أنواع جديدة: تمت إضافة دعم
EXITكنوع للدوال التي تقطع التنفيذ (exit, die). هذا يزيد من دقة التحليل الثابت. - JIT (المترجم في الوقت المناسب): تم تحسينه بشكل كبير. في PHP 8.4، أصبح JIT أكثر ذكاءً: فهو يحسن بشكل أفضل الحلقات "الثقيلة" والعمليات الحسابية، مما يعطي زيادة في الأداء في المعايير تصل إلى 10-15%.
- جامع القمامة (Garbage Collector): تمت إعادة هيكلة آلية جمع القمامة. الخوارزمية الجديدة تعالج المراجع الدائرية بشكل أكثر كفاءة، مما يقلل من استهلاك الذاكرة في العمليات طويلة العمر (مثل عمال قوائم الانتظار).
تغييرات ملحوظة أخرى
بالإضافة إلى الميزات الجديدة البارزة، يحتوي الإصدار على العديد من التحسينات الصغيرة ولكن المفيدة:
- BC Math: تمت إضافة دوال جديدة للعمل مع الأرقام ذات الدقة التعسفية.
- curl: تم تحديث دعم البروتوكولات وتحسين معالجة الأخطاء.
- الإهمال (Deprecations): تم وضع علامة على بعض الدوال القديمة (مثل
mysqli_ping) كمهملة — استعد لإزالتها في PHP 9.0.
هل يستحق التحديث؟
إذا كنت تستخدم مجموعة تقنيات حديثة (Laravel, Symfony) — فإن التحديث إلى PHP 8.4 موصى به. خطافات الخصائص والرؤية غير المتماثلة ستبسط بشكل كبير كتابة الكود النظيف. بالنسبة للمشاريع القديمة، تحقق من توافق تبعياتك، ولكن بشكل عام، سيكون الترحيل من PHP 8.3 سلسًا.