تقديم PHP 7.4: الأداء ، الميزات ، الإهمال

لقد وصل PHP 7.4 أخيرًا! هذا الإصدار الجديد ، الذي تم إصداره في 28 نوفمبر 2019 ، متاح الآن على جميع خوادم Hostinger. يمكن للمطورين توقع تحسينات في قابلية قراءة التعليمات البرمجية والصيانة وسهولة الاستخدام. لنلقِ نظرة على بعض الميزات الجديدة وتعديلات الأداء والأسباب الأخرى التي تدفعك إلى الانتقال إلى PHP 7.4.

جدول المحتويات:

ماذا يعني PHP 7.4 بالنسبة لك؟

تغيير إصدار PHP الخاص بك

ما الجديد في PHP 7.4؟

الإستنكار

ماذا يعني PHP 7.4 بالنسبة لك؟

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

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

يتم استخدام PHP في أكثر من 78.9٪ من جميع مواقع الويب. وفقًا لـ W3techs ، فإن أشهر المواقع التي تستخدم PHP هي Wikipedia و Pinterest و Facebook على سبيل المثال لا الحصر.

إذا نظرنا على وجه التحديد إلى مواقع WordPress التي تشغل PHP ، ومقارنة PHP 5 و 7 ، يمكننا أن نرى زيادة مضاعفة في السرعة. من المؤكد أن مواقع الويب التي تعمل بنظام WordPress تكتسب أقصى استفادة باستخدام أحدث إصدار من PHP. يمكن لمستخدمي Hostinger شحن مواقع WordPress الخاصة بهم بشكل فائق إلى آفاق جديدة بنقرة زر واحدة.

إحصائيات استخدام PHP

شاهد كل هذه الشخصيات الرائعة؟ هذا الرسم البياني يبصق بعض الحقيقة حول مواقع الويب التي تستخدم لغة PHP بشكل نشط. هل يكفي 39191.714 موقعًا مباشرًا لجذب انتباهك؟ هذا هو عدد مستخدمي PHP الآن. بالإضافة إلى PHP 7.4 يختبر بالفعل أفضل من PHP 7.3 مع تحسين الأداء وتحسينات أخرى في جودة الحياة.

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

المتوسط ​​الهندسي لـ PHP لجميع النتائج

تغيير إصدار PHP الخاص بك

جاهز للتحديث؟ يعتقد ذلك. يجعل Hostinger الأمر أسهل من أي وقت مضى مع هذه الخطوات الأربع البسيطة. سوف تتلاعب بإصدار PHP الجديد والمحسّن في أي وقت من الأوقات.

قم بتسجيل الدخول إلى حساب Hostinger الخاص بك واضغط على زر الصفحة الرئيسية.

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

في مربع البحث ، اكتب تكوين PHP وانقر فوقه.

حدد PHP 7.4 وانقر فوق حفظ.

تمكين PHP 7.4 في Hostinger hPanel

تهاني! لديك الآن أفضل وأحدث إصدار من PHP.

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

ما الجديد في PHP 7.4؟

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

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

التحميل المسبق

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

يتم تشغيل التحميل المسبق من خلال توجيه php.ini محدد: opache.preload ، وهو يحتوي على مترجم PHP النصي ويتم تنفيذه عند بدء تشغيل الخادم. يمكن استخدامه أيضًا لتحميل المزيد من الملفات مسبقًا واختيار إما تضمينها أو تجميعها.

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

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

عامل الانتشار في تعبيرات المصفوفة

مرة أخرى عندما تم إصدار PHP 5.6 ، بدأت PHP في دعم تفريغ الوسائط (عامل الانتشار) ولكن الآن ، مع 7.4 ، يمكننا استخدام هذه الميزة مع تعبير مصفوفة. تفريغ الوسيطة عبارة عن صيغة لتفريغ المصفوفات و Traversables في قوائم الوسيطات. وللقيام بذلك ، يجب فقط أن يتم إعداده مسبقًا بـ … (3 نقاط.) هذا كل شيء.

دعونا نلقي نظرة على هذا المثال:

حيوانات $ = [‘كلب’، ‘قطة’]؛

$ animalkingdom = [‘lion’، ‘elephant’، … $ Animals، ‘giraffe’]؛

// [“أسد” ، “فيل” ، “كلب” ، “قطة” ، “زرافة”] ؛

يمكننا الآن توسيع مصفوفة من أي مكان نريده في مصفوفة أخرى ، ببساطة باستخدام صيغة عامل الانتشار.

هنا مثال أطول:

العدد 1 = [1 ، 2 ، 3] ؛

$ num2 = [… $ num1] ؛ // [1، 2، 3]

$ num3 = [0، … $ num1] ؛ // [0، 1، 2، 3]

$ num4 = مجموعة (… $ num1، … $ num2، 111) ؛ // [1 ، 2 ، 3 ، 1 ، 2 ، 3 ، 11

1]

$ num5 = [… $ num1، … $ num1]؛ // [1 ، 2 ، 3 ، 1 ، 2 ، 3]

ليس ذلك فحسب ، بل يمكنك أيضًا استخدامه في وظيفة. تحقق من هذا المثال:

دالة getNum () {

  إرجاع [‘a’، ‘b’]؛

}

$ num6 = [… getNum ()، ‘c’]؛ // [‘a’، ‘b’، ‘c’]

$ num7 = [… NumIterator جديد ([‘a’، ‘b’، ‘c’])]؛ // [‘a’، ‘b’، ‘c’]

وظيفة arrGen () {

    لـ ($ i = 11 ؛ $ i <15 ؛ $ i ++) {

        العائد $ أنا ؛

    }

}

$ num8 = [… arrGen ()] ؛ // [11 ، 12 ، 13 ، 14]

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

سيبدو مثال الرمز بالشكل التالي:

دالة getAnimals () {

  إرجاع [‘كلب’ ، ‘قطة’ ، ‘فيل’] ؛

}

$ num1 = [… getAnimals ()، ‘lion’، ‘tiger’، ‘giraffe’]؛

وباستخدام PHP 7.4 ، يمكن طباعة:

مجموعة (6) {

  [0] =>

  سلسلة (3) “كلب”

  [1] =>

  سلسلة (3) “قطة”

  [2] =>

  سلسلة (8) “فيل”

  [3] =>

  سلسلة (4) “أسد”

  [4] =>

  سلسلة (5) “tiger”

  [5] =>

  سلسلة (7) “زرافة”

}

باستخدام تعبير المصفوفة الجديد هذا ، يجب أن يكون لدى عوامل التوزيع أداء أفضل بكثير من 7.3 array_merge. هذا لأن عامل الانتشار هو بنية لغة بينما array_merge هي وظيفة. أيضًا لأن عامل الانتشار يدعم الكائنات التي تقوم بتنفيذ عبور وأن array_merge يدعم المصفوفات فقط.

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

فائدة مجيدة أخرى لـ 7.4 هي إزالة array_merge. قل وداعا لتغير المؤشر اللعين!

على سبيل المثال ، دعنا نلقي نظرة على هذا المصفوفة الطويلة المتعرجة أدناه:

$ array = [‘banana،‘ orange ’]؛

مجموعة $ [2] = “برتقالي” ؛

مجموعة $ [1] = “تفاحة” ؛ // التحول

var_dump (مصفوفة $) ؛

// مطبوعات

مجموعة (3) {

  [0] =>

  سلسلة (6) “موزة”

  [1] =>

  سلسلة (5) “تفاحة”

  [2] =>

  سلسلة (6) “برتقالي”

فائدة أخرى لـ 7.4 هي استخدام وظيفة المولد. تعمل وظيفة المولد تمامًا مثل الوظيفة العادية ، باستثناء أنه بدلاً من إرجاع قيمة ، تنتج وظيفة المولد العديد من القيم التي تحتاج إليها.

تحقق من رمز المثال أدناه:

وظيفة المولد() {

  لـ ($ i = 3 ؛ $ i <= 5 ؛ $ i ++) {

    العائد $ أنا ؛

  }

}

$ num1 = [0، 1، 2، … مولد ()] ؛

مراجع ضعيفة

الآن PHP 7.4 بها فئة WeakReference ، والتي يجب عدم الخلط بينها وبين الفئة WeakRed أو الامتداد Weakref.

تسمح WeakReferences للمبرمج باستدعاء إشارة إلى كائن. هذا مفيد لأنه لا يمنع تدمير الكائن. إنها مفيدة لتنفيذ ذاكرة التخزين المؤقت مثل الهياكل.

ضعف المرجع {

/* أساليب */

public _construct (باطل)

إنشاء عام ثابت (الكائن $ Referent): WeakReference

الحصول على العامة (باطل):؟ وجوه

}

المعلمات المتناقضة والإرجاع المتغير

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

الآن ، مع PHP 7.4 ، يقترح السماح بالمتغير المشترك (مرتب من المحدد إلى العام) والمخالف (عكس الترتيب) على أنواع المعلمات والإرجاع.

فيما يلي مثال على كليهما:

مثال على نوع الإرجاع المتغير:

مصنع الواجهة {

  جعل الوظيفة (): كائن ؛

}

class UserFactory implements Factory {

  جعل الوظيفة (): المستخدم ؛

}

مثال على نوع المعلمة المخالفة:

واجهة Concatable {

  الدالة concat (Iterator $ input) ؛

}

مجموعة فئة تنفذ Concatable {

  // يقبل كل العناصر التكرارية ، وليس التكرارات فقط

  دالة concat (إدخال $ متكرر) {/ *. . . * /}

}

الخصائص المكتوبة 2.0

منذ PHP 5 ، أصبحت تلميحات الكتابة ميزة متاحة تسمح لك بتحديد نوع المتغير المتوقع أن يتم تمريره إلى وظيفة أو فئة. في عمليات الترحيل PHP 7.2 ، أعطت إضافة نوع بيانات الكائن الأمل في توفر المزيد في المستقبل. المستقبل الآن.

في الإصدار 7.4 الجديد ، يمكن لـ PHP دعم قائمة الأنواع التالية:

منطقي ، int ، تعويم ، سلسلة ، صفيف ، كائن ، متكرر ، النفس ، الوالدين

أي فئة أو اسم واجهة

؟ اكتب // حيث قد يكون “type” أيًا مما سبق

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

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

دعونا نتحقق من بعض الأمثلة الأخرى.

هنا فصل مكتوب لـ PHP 7.3:

مستخدم فئة {

    / **var int $ id * /

    معرف $ الخاص؛

    / **var string $ name * /

    اسم $ الخاص؛

    public function __construct (int $ id، string $ name) {

        $ this-> id = $ id؛

        $ this-> name = $ name؛

    }

    الوظيفة العامة getId (): int {

        إرجاع $ this-> id؛

    }

    setId الوظيفة العامة (int $ id): void {

        $ this-> id = $ id؛

    }

    getName () الوظيفة العامة: سلسلة {

        إرجاع $ this-> name؛

    }

    setName الوظيفة العامة (سلسلة اسم $): باطل {

        $ this-> name = $ name؛

    }

}

في PHP 7.4 ، دون التضحية بأي نوع من الأمان ، يمكن الآن كتابة فئة بسيطة مثل:

مستخدم فئة {

    معرف int $ العام؛

    عامة

                : ‘آخر’؛

يمكن أن يؤدي هذا إلى حدوث أخطاء لأنه ليس المقصود عمومًا.

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

استنتاج

في الوقت المناسب تمامًا لقضاء العطلات ، توفر PHP 7.4 ميزات جديدة وتحسينات في جودة الحياة لجميع مطوري PHP.

ستستفيد مواقع WordPress بالتأكيد من هذه التحسينات ويمكن لمستخدميها توقع أوقات تنفيذ أسرع واستخدام أقل للذاكرة عند استخدام PHP 7.4 مقارنة بالإصدارات السابقة.

من خلال إضافة إعلانات نوع الخاصية من الدرجة الأولى وتلميحات الكتابة ووظائف دمج الأسهم وسرعة أفضل بشكل يبعث على السخرية ، فإن 7.4 ستعمل بالتأكيد على تحسين سرعة وجودة سير عملك.

Leave a comment

Your email address will not be published. Required fields are marked *