أساسيات لينكس

إصدار PHP 8.5: ما الجديد، وكم يستمر دعمه، وكيف تحصل عليه في Debian وUbuntu

صدر PHP 8.5 بمعامل الأنابيب وامتداد URI مدمج وclone مع تعديل الخصائص. نعرض أبرز التغييرات ومدة الدعم وطرق الحصول عليه في Debian وUbuntu.

تاريخ النشر
مدة القراءة
6 دقائق
الكاتب
SKYLINE Engineering

صدر PHP 8.5 في 20 نوفمبر 2025، وهو أحدث فرع مستقر من اللغة، وآخر إصدار تصحيحي له حتى 31 أكتوبر 2026 هو 8.5.12. يحمل هذا الإصدار مجموعة من الميزات التي تغيّر طريقة كتابة الشيفرة اليومية، إلى جانب تغييرات تشغيلية تهمّ كل من يدير الخوادم.

نلخّص في هذا المقال الإصدار اعتمادًا على الإعلان الرسمي ودليل الترحيل، ونذكر مواعيد الدعم المنشورة على php.net، ونوضح من أين يحصل عليه مستخدمو Debian وUbuntu.

نظرة سريعة

البندالتفاصيل
الإصدار الأول20 نوفمبر 2025 (8.5.0)
آخر إصدار تصحيحي (31 أكتوبر 2026)8.5.12
الدعم النشط حتى31 ديسمبر 2027
إصلاحات الأمان حتى31 ديسمبر 2029
النسخة الافتراضية فيUbuntu 26.04 LTS وUbuntu 26.10 (php8.5)، أما Debian 13 فيأتي مع PHP 8.4

أبرز الميزات

معامل الأنابيب (Pipe)

يمرّر المعامل الجديد |> قيمةً من اليسار إلى اليمين عبر سلسلة من الدوال، فتصبح الاستدعاءات المتداخلة مكتوبة بترتيب تنفيذها نفسه:

$slug = $title
    |> trim(...)
    |> (fn($s) => str_replace(' ', '-', $s))
    |> strtolower(...);

امتداد URI مدمج

أُضيف امتداد URI متاح دائمًا لتحليل الروابط وتعديلها وفق المعيار RFC 3986 (Uri\Rfc3986\Uri) ومعيار WHATWG URL (Uri\WhatWg\Url)، ويعتمد على مكتبتي uriparser وLexbor. وهو بديل قائم على المعايير للدالة parse_url() في الشيفرة التي تتحقق من الروابط أو تعيد كتابتها.

النسخ مع التعديل (Clone with)

أصبحت clone() تقبل مصفوفة بالخصائص المطلوب تغييرها في النسخة الجديدة، مثل clone($this, ['alpha' => $alpha])، مما يختصر كثيرًا دوال with في الأصناف للقراءة فقط (readonly).

السمة #[\NoDiscard]

عند وسم دالة بالسمة #[\NoDiscard] يصدر PHP تحذيرًا إذا لم تُستخدم القيمة التي تعيدها، ويمكن استخدام التحويل (void) للدلالة على تجاهل القيمة عمدًا. الفكرة حماية الواجهات البرمجية التي يكون فيها إهمال النتيجة خطأً في الغالب.

إضافات أصغر

  • الدالتان array_first() وarray_last() تعيدان أول قيمة أو آخر قيمة في المصفوفة، أو null إن كانت فارغة.
  • يمكن استخدام الدوال المغلقة الساكنة (static closures) والاستدعاءات من الدرجة الأولى داخل التعابير الثابتة، ومنها وسائط السمات والقيم الافتراضية.
  • تنشئ curl_share_init_persistent() مقابض مشاركة لـ cURL تبقى بين الطلبات، فيُعاد استخدام بيانات DNS والاتصالات بدل تهيئتها كل مرة.
  • الأخطاء القاتلة، مثل تجاوز الحد الأقصى لزمن التنفيذ، أصبحت تتضمن تتبعًا للاستدعاءات (backtrace).
  • يمكن تعريف الخصائص بأنها final عبر ترقية خصائص المُنشئ، ويمكن تطبيق السمات على الثوابت، وتطبيق #[\Override] على الخصائص، كما تدعم الخصائص الساكنة الرؤية غير المتماثلة.
  • تقبل setcookie() وsetrawcookie() المفتاح partitioned، وأُضيفت الدالتان get_error_handler() وget_exception_handler().

تغييرات تهمّ مديري الخوادم

  • أصبح OPcache مدمجًا ومحمّلًا دائمًا. لم يعد البناء ينتج الملف opcache.so، وأي سطر متبقٍ مثل zend_extension=opcache.so يولّد تحذيرًا، بينما يظل الإعدادان opcache.enable وopcache.enable_cli فاعلين.
  • أُزيل الإعداد disable_classes لأنه كان يخلّ بافتراضات داخل المحرك. إن كان أحد أدلة التحصين قد أضافه إلى إعداداتك فلم يعد له أي أثر، فراجع ما كنت تعتمد عليه فيه.
  • إعداد جديد max_memory_limit (عند بدء التشغيل فقط) يضع سقفًا لقيمة memory_limit التي يمكن ضبطها عند البدء أو أثناء التشغيل، وطلب ما يتجاوزه يولّد تحذيرًا ويُطبَّق السقف بدلًا منه.
  • الإعداد fatal_error_backtraces يتحكم في إظهار تتبع الاستدعاءات مع الأخطاء القاتلة.
  • الأمر php --ini=diff يعرض فقط الإعدادات المختلفة عن القيم الافتراضية المدمجة، وهو مفيد عند مقارنة خادمين.
  • PHP-FPM حصل على الإعداد fastcgi.script_path_encoded لبيئات Apache التي تستخدم ProxyPass، وأصبح سجل الوصول يحترم قيمة log_limit.
  • الإعداد opcache.file_cache_read_only يسمح بذاكرة تخزين ملفات للقراءة فقط، وهو موجّه لصور الحاويات غير القابلة للكتابة.

ميزات مُهملة تستحق الانتباه

يُعلن PHP 8.5 إهمال (deprecation) عدد من الأنماط القديمة. الإهمال لا يوقف الشيفرة عن العمل، لكنه يملأ السجلات ويشير إلى ما قد يُزال في إصدار لاحق. أكثرها ظهورًا في المشاريع الفعلية:

  • معامل علامة الاقتباس المائلة (backtick) بوصفه اختصارًا للدالة shell_exec().
  • أسماء التحويل (boolean) و(integer) و(double) و(binary)، والبديل (bool) و(int) و(float) و(string).
  • إنهاء عبارة case بفاصلة منقوطة بدل النقطتين.
  • استخدام null مفتاحًا في مصفوفة أو في array_key_exists().
  • الإهمال المرن للدالتين __sleep() و__wakeup() لصالح __serialize() و__unserialize().
  • الدوال curl_close() وfinfo_close() وimagedestroy() وxml_parser_free()، لأن هذه الكائنات تُحرَّر الآن تلقائيًا.

كما أضاف PHP 8.5 تحذيرات جديدة عند تحويل NAN إلى نوع آخر، وعند تحويل عدد عشري لا يمكن تمثيله عددًا صحيحًا، وعند تفكيك قيمة ليست مصفوفة باستخدام [] أو list(). القائمة الكاملة في دليل الترحيل الرسمي.

من أين تحصل على PHP 8.5 في Debian وUbuntu

  • Ubuntu 26.04 LTS يأتي مع php8.5 نسخةً افتراضية (الحزمة الوصفية php بالإصدار 2:8.5+99ubuntu1)، وكذلك Ubuntu 26.10. وتحافظ Ubuntu على أرقام إصدارات حزمها ثابتة وتنقل إصلاحات الأمان إليها.
  • Debian 13 (trixie) يأتي مع PHP 8.4 افتراضيًا، أما php8.5 فموجود حاليًا في مستودع experimental فقط، وهو غير مخصص لبيئات الإنتاج. لذلك يعني تشغيل 8.5 على Debian اليوم الاعتماد على مستودع خارجي مثل packages.sury.org.
  • Ubuntu 24.04 LTS وUbuntu 22.04 LTS وDebian 12 تأتي على الترتيب مع PHP 8.3 و8.1 و8.2، والوصول إلى 8.5 فيها يعني مستودعًا خارجيًا أو ترقية نظام التشغيل.

لمعرفة ما توفره مصادر الحزم المضبوطة لديك قبل تغيير أي شيء:

apt update
apt policy php8.5-fpm php8.5-cli
php -v

هل تنتقل الآن؟

في المشاريع الجديدة يمنحك البدء بالإصدار 8.5 أطول مدة دعم، إذ تستمر إصلاحات الأمان حتى نهاية 2029. أما التطبيقات القائمة فالعامل الحاسم عادةً هو إطار العمل والمكتبات، فتأكد من أنها تعلن دعم PHP 8.5 قبل نقل بيئة الإنتاج. إن كنت على 8.4 فالدعم النشط مستمر حتى 31 ديسمبر 2026 وإصلاحات الأمان حتى 31 ديسمبر 2028، أي أن لديك وقتًا كافيًا للاختبار. وإن كنت ما زلت على 8.2 فدعمه الأمني ينتهي في 31 ديسمبر 2026، ما يجعل الانتقال إلى 8.4 أو 8.5 مهمة قريبة لا ترفًا.

ما الذي ينبغي فعله

  • دوّن المواعيد: يتلقى PHP 8.5 إصلاحات الأمان حتى 31 ديسمبر 2029.
  • شغّل اختباراتك على 8.5 في نسخة تجريبية مع تسجيل كل رسائل الإهمال (error_reporting = E_ALL وlog_errors = On وdisplay_errors = Off).
  • احذف أي سطر zend_extension=opcache.so أو disable_classes من إعدادات 8.5، وراجع إجراءات التحصين التي كانت تعتمد عليهما.
  • تحقق مما إذا كانت توزيعتك توفر 8.5 (يوفره Ubuntu 26.04 LTS ولا يوفره Debian 13)، واختر مصدر الحزم عن قصد.
  • بعد الانتقال إلى 8.5 تابع إصداراته التصحيحية، فإصلاحات الأمان تصل في تحديثات 8.5.x.

المصادر

SKYLINE Engineering

@skyline

The engineering team at SKYLINE Industrial Solutions. We publish field-tested guides drawn from real KSA and GCC deployments.

صفحة الكاتب
SKYLINE engineering services

Need this implemented for you?

Reading is free — building it right takes a team. SKYLINE engineers ship Linux Basics for Aramco vendors, banks, hospitals and government agencies across Saudi Arabia. Talk to us before you start.

Aramco Approved Contractor ISO 9001 · ISO 27001 SAMA CSF aligned NCA ECC ready 247+ KSA clients

Comments

0 total · 0 threads
Be the first to leave a comment.