• 0

ما هي التحديثات الجديدة لاصدار PHP 8

هل يمكن تجربة تلك التحديثات في الوقت الحالي ام لا  ولماذا ؟

20200204-php-8.png

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

السلام عليكم ورحمة الله وبركاته

جميع التحديثات التي تريدها موجودةٌ في هذا الرابط: https://www.php.net/releases/8.0/en.php

بالنسبة لتجربتها حالياً فيمكنك تجربتها في المشاريع الجديدة أما القديمة فهي تحتاج عملية migration وهذا ليس باﻷمر السهل.

بالطبع تحتاج أيضاً إلى تحديث framework إلى نسخة تدعم php 8 ، آخر نسخة من laravel تدعم php 8 لكني لا أعلم عن بقية frameworks .

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

مرحبا،

PHP 8.0 هو تحديث رئيسي للغة PHP.
يحتوي على العديد من الميزات والتحسينات الجديدة بما في ذلك الوسائط المسماة named arguments ، وأنواع الاتحاد union types، والسمات attributes، وترويج خاصية المُنشئ constructor property promotion، وتعبير المطابقة match expression، وعامل nullsafe operator، و JIT الترجمة اللحظية للغة، والتحسينات في نظام أنماط البيانات Data Types، ومعالجة الأخطاء error handling، والاتساق consistency.

Named arguments

يمكننا تحديد الوسيط عن طريق اسمه حتى لو لم يكن بنفس ترتيب تعريفه في الدالة
htmlspecialchars($string, double_encode: false);

قديما كان يجب تمرير كل الوسطاء
htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false);

تغيير طريقة استخدام المسارات لتصبح بالشكل التالي:

class PostsController
{
    #[Route("/api/posts/{id}", methods: ["GET"])]
    public function get($id) { /* ... */ }
}

Constructor property promotion سمحت بتعريف خواص الصنف بدالخل دالة البناء :

- بدل تعريفهم ثم اسناد قيمهم ..

class Point {
  public function __construct(
    public float $x = 0.0,
    public float $y = 0.0,
    public float $z = 0.0,
  ) {}
}

match expression:

أصبح نمط البيانات string لا يتم قصره إلى int بشكل تلقائي ..

echo match (8.0) {
  '8.0' => "Oh no!",
  8.0 => "This is what I expected",
};
//> This is what I expected

Nullsafe operator : اختصر وضع العديد من الشروط لإسناد قيمة للمتحول بوضع إشارة استفهام ؟

$country = $session?->user?->getAddress()?->country;

بدل 

$country =  null;

if ($session !== null) {
  $user = $session->user;

  if ($user !== null) {
    $address = $user->getAddress();
 
    if ($address !== null) {
      $country = $address->country;
    }
  }
}

بالإضافة لدوال و أصناف جديدة يمكنك أن تجدهم عبر الرابط التالي: 

تعديلات لغة البرمجة PHP 8

بالتوفيق

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن