اذهب إلى المحتوى

السؤال

Recommended Posts

  • 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

بالتوفيق

  • 0
نشر

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

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

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...