نظرة عامة على إصدار PHP 8.4 الجديد: التغييرات والابتكارات الرئيسية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

تم إصدار الإصدار الجديد PHP 8.4: ما الذي تغير



استقبل مجتمع المطورين الإصدار المنتظر PHP 8.4. هذا التحديث لا يجلب فقط الوظائف المنتظرة، بل أيضًا تحسينات كبيرة في الأداء ستغير نهج كتابة الكود الحديث. دعنا نستعرض الابتكارات الرئيسية التي يجب أن يعرفها كل من يعمل مع PHP.



Property Hooks (خطافات الخصائص)

أحد أكثر الابتكارات التي تمت مناقشتها هو property hooks. الآن يمكنك تحديد منطق قراءة وكتابة الخصائص مباشرة داخل الفئة، دون الحاجة إلى إنشاء طرق get/set منفصلة:

  • get hook — يتم استدعاؤه عند الوصول إلى الخاصية، مما يسمح بحساب القيمة بشكل فوري؛
  • set hook — يتم استدعاؤه عند التعيين، مما يتيح التحقق من صحة البيانات أو تحويلها؛
  • الصيغة موجزة وتشبه الخصائص في Kotlin أو C#.

هذا يبسط كتابة الكود ويجعله أكثر قابلية للقراءة، مما يلغي الحاجة إلى الدوال المساعدة getter و setter.



الخصائص غير المتزامنة (Asymmetric Visibility)

يقدم PHP 8.4 الرؤية غير المتماثلة للخصائص. الآن يمكنك تعيين مستوى وصول مختلف للقراءة والكتابة:

  • على سبيل المثال، public private(set) string $name — يمكن قراءة الخاصية من أي مكان، ولكن تعديلها فقط داخل الفئة؛
  • هذا يعزز التغليف وأمان الكود دون الحاجة إلى طرق إضافية.


تحسينات مترجم JIT

قام فريق التطوير بتحسين JIT (مترجم في الوقت المناسب) بشكل كبير. في PHP 8.4:

  • تحسين الأداء عند العمل مع الحلقات والعمليات الحسابية؛
  • تقليل استهلاك الذاكرة أثناء التجميع؛
  • \
  • تحديث محرك IR (التمثيل الوسيط)، مما أدى إلى زيادة السرعة بنسبة تصل إلى 10-15% في بعض اختبارات الأداء.

هذا مهم بشكل خاص للمشاريع عالية التحميل والأطر البرمجية.



وظائف جديدة وتحسينات في المكتبة القياسية

يتضمن الإصدار العديد من الإضافات المفيدة:

  • array_find() — دالة للبحث عن العنصر الأول الذي يفي بشرط (مشابهة لـ array_filter ولكنها تعيد عنصرًا واحدًا)؛
  • array_all() و array_any() — التحقق مما إذا كانت جميع العناصر أو عنصر واحد على الأقل تتوافق مع دالة الاستدعاء؛
  • mb_ucfirst() — للعمل مع السلاسل متعددة البايت (مشابهة لـ ucfirst ولكن مع دعم UTF-8).

هذه الدوال تبسط المهام النمطية وتقلل من كمية الكود المتكرر.



تغييرات مهمة أخرى

  • تحسين التوصيف: إضافة دعم للأنواع لثوابت الفئات؛
  • تحسين التعامل مع الاستثناءات: تقليل التكاليف الإضافية لـ throw/catch؛
  • إزالة الوظائف القديمة: إزالة بعض العناصر المهملة نهائيًا من الإصدارات القديمة.


ماذا يعني هذا للمطورين

PHP 8.4 ليس مجرد تحديث روتيني، بل هو خطوة نحو لغة أكثر حداثة وأداءً وسهولة في الاستخدام. تغير خطافات الخصائص والرؤية غير المتماثلة نموذج العمل مع الفئات، بينما تجعل تحسينات JIT لغة PHP أكثر تنافسية في مجال تطبيقات الويب عالية التحميل.

نوصي بتحديث مشاريعك إلى

المكتبات الموصى بها