PHP 8: الدليل الكامل

نشرت: 2021-01-05

في 26 نوفمبر 2020 ، دخلنا إلى عالم PHP 8. كل تحديث PHP يجلب مجموعة كاملة من الميزات الرئيسية الجديدة تمامًا. على الرغم من أن جميع التحديثات ليست مهمة لغالبية المستخدمين العاديين ، إلا أن التحديثات الأخرى تعتبر مناسبة جدًا لغالبية مطوري WordPress المخضرمين.

ولكن بغض النظر عن مستوى التطوير الذي تعمل عليه ، فإن جوانب الإصدار الجديد ، مثل زيادة السرعة وتعطيل التغييرات التي قد تضر بالكود الحالي ، قد تؤثر سلبًا على سير عملك اليومي.

في هذا الدليل ، سنتعرف على أهم التغييرات في هذا الإصدار الجديد من PHP 8. دعنا نتعمق.

في هذا الدليل

    لماذا تحدث تحديثات PHP

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

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

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

    عندما تتعارض السمات غير المتوافقة أو المتخلفة أو القديمة مع تحديثات PHP الجديدة ، فقد ينتهي بها الأمر إلى كسر موقعك بالكامل أو التسبب في توقف مناطق من الموقع عن العمل.

    إنها لفكرة جيدة أن تعرف التغييرات العاجلة المحتملة التي يتم إصدارها حتى تتمكن من معالجتها مباشرةً في التعليمات البرمجية المخصصة. يساعدك هذا أيضًا في الاستفادة من التعليمات البرمجية الأحدث التي تحتوي على المزيد من التعبيرات المحسّنة.

    ومع ذلك ، حتى إذا لم تلمس جزءًا واحدًا من الكود المخصص في حياتك المهنية ، عندما تضيف لوحة معلومات WordPress الخاصة بك إشعارًا مطلوبًا لتحديث WordPress PHP للإصدار المحدث من PHP ، سيكون عليك تحديد ما إذا كنت ستقوم بالترقية أم لا.

    دائمًا ما تكون الإجابة على هذا السؤال بنعم دائمًا. ولكن قبل القيام بذلك ، من الذكاء النظر في التغييرات الرئيسية في الميزات والتأكد من عدم وجود أي شيء قد يسبب لك مشكلات. كما يقول المثل القديم ، "من الأفضل أن تكون آمنًا من أن تكون آسف".

    PHP 8

    ما الجديد في إصدار PHP 8

    هذا الإصدار من PHP ليس ، بأي حال من الأحوال ، أكبر تحديث تم الوصول إليه. ولكن لا تزال هناك بعض التغييرات المثيرة التي يجب أن ننظر إليها.

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

    بمعنى آخر ، يمنحك إصدار PHP الحالي بعض الميزات الجديدة الرائعة دون الحاجة إلى قضاء ساعات في استكشاف الأخطاء وإصلاحها.

    بينما توجد بعض التغييرات الإضافية التي تم إجراؤها في هذا الإصدار من PHP ، سيغطي هذا الدليل التغييرات الأكثر صلة.

    مترجم Just In Time (JIT)

    الإضافة الأكثر إثارة والأكبر بالتأكيد إلى الإصدار الجديد من PHP هي مترجم Just In Time أو JIT.

    كما تعلم على الأرجح ، PHP هي لغة مفسرة. هذا يعني أنه يتم تشغيله في الوقت الفعلي بدلاً من تشغيله في وقت إطلاق محدد مسبقًا بعد تجميعه.

    ما يجلبه JIT إلى الجدول من أجل PHP هو تعليمة برمجية مجمعة. مع الكود المترجم يأتي أداء محسن في مواقف معينة.

    إذا كنت تحب الكثير من مطوري PHP ، فمن المحتمل أنك تعمل مع تطبيقات الويب. لسوء الحظ ، لن تساعد JIT كثيرًا في تطبيقات الويب. لكنه يمثل تحسنًا كبيرًا عندما يتعلق الأمر بمهام مثل:

    • تحليل البيانات
    • عرض ثلاثي الأبعاد
    • منظمة العفو الدولية
    • عمليات إضافية تستغرق وقتًا طويلاً للتشغيل

    على الرغم من أن هذه ليست بالضرورة أكثر تطبيقات PHP شيوعًا ، إلا أن المطورين الذين يتطلعون إلى الأمام يتفرعون أكثر مع PHP.

    يساعد مترجم JIT في جعل PHP أكثر مرونة للقيام بذلك.

    في الواقع ، يكاد يكون JIT مضمونًا لفتح آفاق PHP وجلب مطورين جدد مهتمين باستخدامها لأغراض جديدة.

    بالنسبة للمشاريع الحالية ، ربما لن تفعل الكثير.

    قبل تنفيذ JIT ، تأكد من اختباره في بيئة معزولة لمعرفة ما إذا كان هناك أي تحسن في أدائك.

    صفات

    يدعم الإصدار الجديد من PHP السمات. هذه أجزاء صغيرة من البيانات الوصفية التي تضيفها إلى التعليمات البرمجية الخاصة بك ، مثل المعلمات والفئات والوظائف.

    هذا يعني أنك لم تعد مطالبًا باستخدام docblocks كحل قياسي. على الرغم من أن هذا يبدو وكأنه تغيير بسيط ، إلا أنه يجعل الحياة أسهل كثيرًا لمطوري PHP.

    يمكنك الآن إضافة أي عدد من السمات إلى أي جزء من التعليمات البرمجية الفردية ، ثم استيرادها باستخدام عبارات الاستخدام.

    يمكنك حتى إضافة معلمات إلى السمات.

    لإضافة سمة إلى شفرتك ، ما عليك سوى إضافة علامتين "أقل من" وعلامتين "أكبر من" حول السمة.

    من المهم ملاحظة أن السمات ليست متوافقة مع الإصدارات السابقة. سوف تتسبب في حدوث أخطاء إذا تم نقلها إلى إصدار قديم من PHP.

    كما تعلم على الأرجح ، فإن الحل القياسي باستخدام docblock يعمل بكامل طاقته. لكنها كانت دائمًا عديمة الجدوى. باستخدام الإصدار الجديد من PHP ، يمكنك الآن إضافة سمات مباشرة.

    على الرغم من أنها إضافة صغيرة إلى PHP ، إلا أن آثارها ضخمة.

    تعبير تطابق جديد

    كانت عبارات التبديل إصدارًا أكثر قوة من عبارات if. ومع ذلك ، فإن تعبيرات المطابقة الجديدة في PHP تعمل على تحسين هذا المفهوم.

    هذا أقصر وأكثر صرامة ، مما يساعده على التقاط الحشرات بشكل أفضل. كما أنها تجمع بين الشروط ولن تتطلب أي بيان كسر.

    بهذه الطرق ، تعتبر تعبيرات المطابقة الجديدة بمثابة تحسن ملحوظ.

    لا يزال Switch يتمتع بميزة على المطابقة لأنه يتمتع بالقدرة على استخدام تعبيرات متعددة. لكن بالإضافة إلى ذلك ، ضع في اعتبارك إجراء بعض القراءة على تعبيرات المطابقة.

    حتى الآن تبدو وكأنها بديل ممتاز قد ترغب في استخدامه.

    أنواع الاتحاد

    أحد الأجزاء الرئيسية في PHP هي الأنواع: تعيين متغير كمتغير منطقي وعدد صحيح وخالي وما إلى ذلك.

    قبل هذا الإصدار من PHP ، كان مسموحًا لك فقط بتعيين متغيرات من نوع واحد. يسمح لك PHP 8 بتعيين نوعين أو أكثر ، يسمى نوع الاتحاد.

    على سبيل المثال ، ستتمكن من تعيين نوع عدد صحيح وعدد صحيح ، ويمكن استخدام أي منهما. يتم تحديدها بخط بين الأنواع ، مثل float | int.

    بالطبع ، لن تتمكن من دمج الفراغ مع أي أنواع أخرى لأنهما يستبعدان بعضهما البعض.

    الأنواع المكررة أو المكررة ، مثل float | float ، لن تعمل أيضًا.

    في الإصدارات القديمة من PHP ، يمكنك استخدام تعليقات PHPDoc لمحاولة إنشاء نوع موحد وظيفي. الآن ، يمكنك تخطي هذا النوع من الحل البديل وتعيين متغيراتك بأنواع متعددة.

    عودة ثابتة وأنواع مختلطة

    كمطور ، من المعروف أن عوائد PHP تُستخدم لإرجاع قيمة الدالة. قبل هذا الإصدار ، لم يكن خيارًا لاستخدام النوع الثابت.

    كانت "الوالد" و "الذات" من أنواع الإرجاع التي كانت صالحة ، ولكن "ثابت" لم تكن كذلك. تمت معالجة هذه المشكلة بالكامل في إصدار PHP الجديد.

    على الرغم من أنها ليست حالة استخدام شائعة بشكل لا يصدق ، إذا ظهرت ، فسوف تسعد بالتأكيد أن لديك إمكانية الوصول إليها.

    ستجد أيضًا نوعًا مختلطًا جديدًا. يمكن وصفه بشكل أكثر دقة بأنه نوع زائف لأنه يمثل كل الأنواع الأخرى الموجودة في PHP.

    من الأفضل استخدامه عندما تتعامل مع مواقف تتطلب منك العمل مع أنواع مختلفة متعددة.

    ستكون "مختلطة" هي الخيار الافتراضي إذا لم تختر نوعًا معينًا.

    في كثير من الأحيان ، من الأفضل استخدام نوع الاتحاد الجديد بدلاً من النوع المختلط. هذا لأنه من المحتمل أنك تريد أن تكون أكثر تحديدًا.

    ومع ذلك ، هذا سيظل يخدم غرضًا لك.

    الحقيقة هي أن أيا من هذه ليست كبيرة مثل نوع الاتحاد ، لكنها بالتأكيد تشير إلى تحسن.

    وظائف PHP 8 الجديدة

    يصل الإصدار الجديد من PHP بوظائف جديدة يمكنك العمل بها.

    • str_starts_with و str_ends_with - هذا سوف يتحقق مما إذا كانت السلسلة تنتهي أو تبدأ بسطر معين
    • fdiv - سيسمح هذا بالقسمة التي ستتفاعل باستمرار عند القسمة على صفر
    • str_contains - على غرار str_starts_with و str_ends_with ولكنها ستتحقق من سلسلة كاملة
    • get_debug_type - تعمل بشكل مشابه لـ gettype ، لكنها ستعرض معلومات إضافية ، مثل اسم الفئة
    • get_resource_id - هذا يجعل من السهل الحصول على معرف لمورد ، مثل اتصال قاعدة البيانات
    • preg_last_error_msg - تعرض رسالة خطأ يمكن قراءتها بلغة بسيطة

    اختبر بعض هذه الوظائف الجديدة لترى كيف يمكنك تحقيق أقصى استفادة منها.

    الحجج المسماة

    قد يحبها البعض والبعض قد يحتقرها. في كلتا الحالتين ، توجد الوسائط المسماة في الإصدار الجديد من PHP.

    تسمح لك الوسيطات بتمرير البيانات إلى دالة. تتيح لك الوسيطات المسماة أن تفعل الشيء نفسه بتمرير اسم الوسيطة بدلاً من الترتيب.

    ستظل قادرًا على دمجها مع الحجج المرتبة. لكن ستتمكن من تخطي المعلمات الاختيارية إذا رغبت في ذلك.

    من الناحية العملية ، سيعني هذا رمزًا أنظف وأخطاء قليلة. بعد كل شيء ، كلما كانت الشفرة أكثر إحكامًا ، كان ذلك أفضل. من الأسهل بكثير العمل معه.

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

    كسر التغييرات في PHP 8

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

    1. تمت إعادة تصنيف تحذيرات المحرك بحيث تعرض مستوى الخطورة المناسب ، مثل الإشعارات والتحذيرات والأخطاء الفادحة. ضع في اعتبارك أن هذا تغيير طفيف لن يؤثر على العديد من المشاريع.
    2. سيظهر الآن TypeError بشكل روتيني في الوظائف الداخلية. يؤثر هذا على التوافق مع الإصدارات السابقة أكثر مما قد ندركه حتى الآن ، ولكنه مع ذلك تغيير قوي.
    3. تم إجراء تغييرات متعددة على مستويات الإبلاغ عن الخطأ التي تم تعيينها مسبقًا صامتة وتجاهلها. بمعنى آخر ، يجب أن تنتشر الآن الأخطاء الجديدة التي ربما لم تكن تراها من قبل.
    4. الفرز أكثر موثوقية واستقرارًا. على الرغم من إجراء PHP 7 بعض التغييرات الكبيرة على التصنيف ، إلا أن التحديث الأحدث يلحق أضرارًا أقل بكثير بالشفرة الحالية.
    5. أصبحت الأسماء ذات المسافات الآن رمزًا مميزًا واحدًا. لا يمكن أن يكون لديهم أي مسافة بيضاء بالداخل. تأثير هذا التغيير صغير وسهل الإصلاح.
    6. في الإصدارات السابقة من PHP ، تم تفسير الطرق التي لها اسم يطابق الفئة على أنها منشئات. في الإصدار الجديد ، سيتعين عليك استخدام طريقة __construct ().

    هناك العشرات من التحديثات الصغيرة الأخرى التي نادرًا ما تسبب أي مشاكل. بشكل عام ، لن تواجه الكثير من المشكلات مع تحديث PHP الحالي.

    ترقية إصدار PHP الخاص بك في WordPress

    بصفتك مطور WordPress ، فأنت تعلم مدى أهمية تحديث إصدار PHP الخاص بك. من المثير للقلق معرفة أن جزءًا كبيرًا جدًا من مستخدمي WordPress لا يزالون يعملون على PHP 5.6 وهي مسؤولية ضخمة.

    حتى لو كنت تستخدم PHP 7.4 وتعتقد أنك محدث تمامًا ، فقد حان الوقت بالتأكيد للتحديث إلى أحدث إصدار من PHP.

    يعد تشغيل موقع WordPress الخاص بك على إصدار أقدم من PHP مخاطرة أمنية كبيرة. تحتوي إصدارات PHP القديمة على تدفقات أمنية قابلة للاستغلال يستفيد منها المتسللون بانتظام.

    الطريقة الوحيدة التي يمكنك من خلالها تصحيح فجوات الأواني الموجودة هي الحفاظ على تحديث PHP بالكامل في جميع الأوقات.

    ستحتاج أيضًا إلى تشغيل مكون إضافي قوي للأمان في WordPress لتعزيز حماية الأمان لديك.

    احصل على المحتوى الإضافي: دليل لأمان WordPress
    انقر هنا

    سبب آخر لتحديث PHP هو السرعة. مع كل تحديث يأتي بسرعات أعلى ووظائف محسّنة أكثر. بالطبع ، كان أكبر فرق ملحوظ بين PHP 5.6 و 7.4. لكنك ستلاحظ بالتأكيد زيادة في السرعة مع التحديث الأحدث.

    التوافق هو السبب الأخير لأهمية تحديث PHP في WordPress.

    يمكن أن يتسبب إصدار قديم من PHP في العديد من المشكلات المختلفة التي يمكن أن تسبب أخطاء أو تعطل موقع الويب بالكامل.

    علاوة على ذلك ، هناك سمات ومكونات إضافية تتطلب إصدار PHP محدث بالكامل حتى تعمل.

    قبل تشغيل التحديث ، تأكد من تشغيل مكون إضافي للنسخ الاحتياطي في WordPress في حالة وجود أي تعارضات بعد تشغيل التحديث.

    ترقية إصدار PHP الخاص بك بكل بساطة. كل ما عليك فعله هو تسجيل الدخول إلى cPanel ، أو لوحة تحكم المشرف الخاصة بالمضيف الذي تستخدمه ، والعثور على PHP Version Manager وتحديد أحدث إصدار. ولكن قبل تشغيل التحديث ، تحقق مع مضيفك للتأكد من أنه يدعم أحدث تحديث لـ PHP. قد يعمل البعض على برامج قديمة.

    للحصول على معلومات إضافية حول PHP و WordPress ، تحقق من وثائق WordPress.org الرسمية على WordPress و PHP 8.

    الختام: PHP 8 ومستقبل PHP

    على الرغم من أنه ليس تحديثًا للوحش مثل PHP 7.0 - 7.4 ، لا يزال لدى PHP 8 الكثير من الأشياء التي يمكنك الاستفادة منها.

    من مترجم JIT إلى السمات الجديدة وتعبير المطابقة والوظائف المفيدة الأخرى للمطورين ، حان الوقت للتعرف على هذا الإصدار الجديد المهم من PHP.

    ما هي أجزاء هذا التحديث التي تتوقع استخدامها أكثر من غيرها في سير العمل اليومي؟