PHP لدى EGPHP

كل ما نبنيه يبدأ بلغة PHP.

يكتب فريقنا PHP ويشغّلها منذ خمسة وعشرين عامًا، أي منذ PHP 4. والخوادم ولوحة التحكم والمواقع التي نرعاها كلها تبدأ من هنا.

يعمل على ويُبنى بـ
  • PHP
  • Laravel
  • NGINX
  • LiteSpeed
  • MySQL
  • MariaDB
  • PostgreSQL
  • Redis
  • Composer
حقوق الشعارات

خمسة وعشرون عامًا، إصدارًا بعد إصدار

لم نعرف هذه الإصدارات من القراءة عنها، بل رقّينا مواقع حقيقية عبر كلٍّ منها، وكل سطر أدناه تغييرٌ اضطررنا إلى التعامل معه على خادم يعمل فعليًا.

  1. PHP 4 2000

    الجلسات وتخزين المخرجات مؤقتًا، ضمن اللغة

    وصل Zend Engine، فصارت الجلسات وتخزين المخرجات مؤقتًا جزءًا من اللغة بدلًا من إضافات خارجية. وعليه كُتب جيل كامل من المواقع الديناميكية الأولى.

    • Zend Engine
    • session_start()
    • ob_start()
    ماذا عنى لنا

    هنا بدأ فريقنا: مواقع مكتوبة يدويًا على خوادم مشتركة، وما زال register_globals مفعّلًا.

  2. PHP 5.0 2004

    نموذج كائنات حقيقي

    جاء Zend Engine 2 بأصناف ذات مستويات وصول، وبالواجهات والاستثناءات، وبكائنات تُمرَّر بمقبضها بدلًا من نسخها، وبامتدادَي MySQLi وSimpleXML.

    • private
    • interface
    • try / catch
    • mysqli
    ماذا عنى لنا

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

  3. PHP 5.3 2009

    مساحات الأسماء والدوال المغلقة

    مساحات الأسماء والدوال المجهولة والربط الساكن المتأخر: الأساس الذي بُني عليه لاحقًا Composer ومنظومة الحزم المشتركة.

    • namespace
    • function () use ()
    • static::
    ماذا عنى لنا

    أخيرًا صار بإمكان مكتبات من مؤلفين مختلفين أن تتعايش في مشروع واحد دون أن تتصادم أسماؤها.

  4. PHP 5.4 2012

    السمات والمصفوفات المختصرة وحملة تنظيف عطّل الشيفرة القديمة

    السمات، وصيغة المصفوفات المختصرة []، وخادم تطوير مدمج، بينما أُزيلت register_globals والاقتباسات السحرية (magic quotes) والوضع الآمن (safe mode) نهائيًا.

    • trait
    • [ ]
    • php -S
    ماذا عنى لنا

    توقفت المواقع القديمة المعتمدة على register_globals عن العمل، وصارت ترقيتها تعني إصلاحها أولًا.

  5. PHP 5.5 2013

    OPcache مدمج في PHP

    صار OPcache يأتي مع PHP نفسها ويحفظ السكربتات المترجمة في الذاكرة، إلى جانب المولّدات والدالة password_hash().

    • opcache
    • yield
    • password_hash()
    ماذا عنى لنا

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

  6. PHP 6 لم يصدر قط

    الإصدار الذي لم يصدر قط

    خُطط لإصدار PHP 6 حول دعم أصيل لسلاسل Unicode النصية، ثم جرى التخلي عنه. وحمل الإصدار التالي الرقم 7 حتى لا يُخلط بينه وبين الكتب والخطط التي كُتبت للإصدار 6.

  7. PHP 7.0 2015

    قفزة السرعة عطّل الشيفرة القديمة

    محرك أُعيد بناؤه، وصفه مشروع PHP بأنه أسرع بما يصل إلى الضعف من 5.6 مع استهلاك أقل للذاكرة، إضافةً إلى تصريحات الأنواع البسيطة وأنواع القيم المُرجعة، والعاملَين ?? و <=>.

    • int $id
    • : string
    • ??
    • <=>
    ماذا عنى لنا

    أُزيلت دوال mysql_* القديمة، وكان ذلك سببًا متكررًا لتعطّل المواقع القديمة عند هذه الترقية.

  8. PHP 7.4 2019

    الخصائص محددة النوع والتحميل المسبق

    الخصائص محددة النوع، والدوال السهمية، والعامل ??=، والتحميل المسبق في OPcache، وFFI.

    • public int $id
    • fn ($x) =>
    • ??=
    ماذا عنى لنا

    آخر إصدارات 7.x، والإصدار الذي بقيت عليه تطبيقات قديمة كثيرة أطول مدة، ولهذا ما زلنا ننقل مواقع منه.

  9. PHP 8.0 2020

    JIT والواصفات والوسائط المسمّاة عطّل الشيفرة القديمة

    مترجم JIT، والواصفات، والوسائط المسمّاة، وأنواع الاتحاد، وتعبير match، وعامل الأمان من القيم الفارغة ?->، وترقية خصائص المُنشئ.

    • #[Attribute]
    • match
    • ?->
    • JIT
    ماذا عنى لنا

    تحوّلت تحذيرات كثيرة إلى أخطاء، وتغيّرت المقارنة بين النصوص والأرقام، فقد تتوقف على 8.0 شيفرةٌ كانت تعمل بهدوء على 7.4.

  10. PHP 8.1 2021

    التعدادات والقراءة فقط والألياف

    تعدادات أصيلة، وخصائص للقراءة فقط، والألياف (fibers)، ونوع الإرجاع never، وصيغة الاستدعاءات من الدرجة الأولى.

    • enum
    • readonly
    • Fiber
    • never
    ماذا عنى لنا

    فتحت الألياف الطريق أمام مكتبات PHP غير المتزامنة، دون تغيير طريقة تنفيذ الطلب العادي.

  11. PHP 8.2 2022

    أصناف للقراءة فقط، وتحذير للشيفرة القديمة

    أصناف للقراءة فقط، وأنواع DNF، والقيم true وfalse وnull أنواعًا مستقلة، وامتداد Random جديد.

    • readonly class
    • (A&B)|null
    • Random\Randomizer
    ماذا عنى لنا

    أُعلن إهمال الخصائص الديناميكية، فملأت الإضافات القديمة السجلات بالتنبيهات حتى حُدّثت.

  12. PHP 8.3 2023

    الثوابت محددة النوع والواصفة #[\Override]

    ثوابت أصناف محددة النوع، والواصفة #[\Override]، والدالة json_validate()، وجلب ثوابت الأصناف ديناميكيًا.

    • const string
    • #[\Override]
    • json_validate()
    ماذا عنى لنا

    إصدار أهدأ، ما يجعله خطوة سهلة للمواقع التي تعمل على 8.2 أصلًا.

  13. PHP 8.4 2024

    خطافات الخصائص

    خطافات الخصائص، ومستويات وصول غير متماثلة، والكائنات الكسولة، ومحلّل DOM يفهم HTML5، وكتابة new MyClass()->method() دون الأقواس الإضافية.

    • get { }
    • public private(set)
    • Dom\HTMLDocument
    ماذا عنى لنا

    دوال القراءة والتعيين التي كانت تحتاج كلٌّ منها إلى دالة مستقلة صارت جزءًا من الخاصية نفسها، فتقلّ الشيفرة التي تحتاج إلى صيانة.

  14. PHP 8.5 2025

    عامل الأنبوب الحالي

    عامل الأنبوب |>، وامتداد URI مدمج، وclone with، والواصفة #[\NoDiscard]، والدالتان array_first() وarray_last()، وتتبّع الاستدعاءات عند الأخطاء الفادحة.

    • |>
    • Uri\Rfc3986\Uri
    • clone($o, [ ])
    ماذا عنى لنا

    سلسلة الإصدارات الحالية، وعليها نبدأ المواقع الجديدة حين تدعمها شيفرتها.

السنوات هي سنوات الإصدار الأول لكل نسخة، كما وردت في سجل الإصدارات الخاص بمشروع PHP نفسه.

تتبّع طلبًا واحدًا عبر طبقات المنظومة

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

  1. الزائر

    يطلب المتصفح صفحة عبر HTTPS. وتحدد الشهادة والجدار الناري والقواعد الموضوعة أمام الخادم ما إذا كان الطلب سيُسمح له بالدخول أصلًا.

  2. خادم الويب

    يستقبل Nginx أو LiteSpeed الاتصال، ويقدّم الصور والملفات بنفسه، ولا يمرّر إلى المجمّع الذي خلفه إلا عمل PHP.

  3. بيئة تشغيل PHP

    مجمّعات PHP-FPM، مجمّع لكل موقع، كلٌّ منها على إصدار PHP الذي تحتاجه شيفرته، مع OPcache ساخن وعمليات محسوبة على حجم الزيارات.

  4. شيفرتك

    يحوّل إطار عمل أو منصة جاهزة الطلب إلى صفحة: تطبيق Laravel الخاص بك، أو WordPress وMagento وMoodle وغيرها.

  5. البيانات

    يحفظ MySQL أو MariaDB السجلات، ويُبقي Redis في الذاكرة ما يُطلب مرة بعد مرة.

تحت الطبقات الخمس

الخادم نفسه

خوادمنا نحن، يديرها الفريق نفسه، وفوقها لوحة التحكم الخاصة بنا.

الانتقال إلى PHP أحدث دون صباح عصيب

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

  1. نحصر ما يعمل عليه كل موقع

    إصدار PHP الخاص به، وامتداداته، والإضافات أو الحزم التي تعيقه.

  2. نسخة تجرّب الإصدار الجديد

    يُنسخ الموقع ويُشغَّل على إصدار PHP التالي، ويُقرأ سجل أخطائه سطرًا سطرًا.

  3. نصلح ما يتعطّل

    تُصلَح أو تُستبدل الدوال المُزالة، والاستدعاءات المُهمَلة، والإضافات التي لا تحديث لها.

  4. موقعًا بعد موقع

    ينتقل كل موقع إلى مجمّعه الجديد وحده، ويمكن إعادته فورًا إن فات شيء.

php-fpmخادم واحد، إصدارات متعددة
الموقعPHPالمجمّعالحالة
shop.example.com 8.4 fpm-shop مباشر
blog.example.com 8.3 fpm-blog مباشر
crm.example.com 7.4 → 8.3 fpm-crm على نسخة
learn.example.com 8.3 fpm-learn مباشر
خادم على سبيل المثال

أي إصدارات PHP ما زالت تتلقى إصلاحات

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

  • إصلاحات الأخطاء والأمان
  • إصلاحات الأمان فقط
  • تجاوز نهاية عمره
  • اليوم
  1. PHP 7.4 نهاية العمر

    الإصدار الذي بقيت عليه كثير من التطبيقات القديمة أطول مدة.

    تاريخ الإصدار
    2019-11-28
    نهاية العمر
    2022-11-28
  2. PHP 8.0 نهاية العمر
    تاريخ الإصدار
    2020-11-26
    نهاية العمر
    2023-11-26
  3. PHP 8.1 نهاية العمر
    تاريخ الإصدار
    2021-11-25
    نهاية العمر
    2025-12-31
  4. PHP 8.2 إصلاحات الأمان فقط
    تاريخ الإصدار
    2022-12-08
    إصلاحات الأخطاء حتى
    2024-12-31
    إصلاحات الأمان حتى
    2026-12-31
  5. PHP 8.3 إصلاحات الأمان فقط
    تاريخ الإصدار
    2023-11-23
    إصلاحات الأخطاء حتى
    2025-12-31
    إصلاحات الأمان حتى
    2027-12-31
  6. PHP 8.4 دعم فعّال

    يعمل على استضافتنا، مع تفعيل OPcache وJIT.

    تاريخ الإصدار
    2024-11-21
    إصلاحات الأخطاء حتى
    2026-12-31
    إصلاحات الأمان حتى
    2028-12-31
  7. PHP 8.5 دعم فعّال

    الإصدار الذي نبدأ به المواقع الجديدة عندما يدعمه كودها.

    تاريخ الإصدار
    2025-11-20
    إصلاحات الأخطاء حتى
    2027-12-31
    إصلاحات الأمان حتى
    2029-12-31

التواريخ من مشروع PHP نفسه، من صفحتيه عن الإصدارات المدعومة ونهاية العمر، وقد روجعت في 2026-09-29. php.net/supported-versions.php

حزمة PHP، قدرة بعد قدرة

كل ما في هذه الخريطة موصوف في صفحة أخرى من هذا الموقع. وكل بطاقة تربطك بالصفحة التي تشرحه بالتفصيل.

التشغيل

كيف يُشغَّل PHP نفسه لكل موقع.

  • مجمّع لكل موقع

    لكل موقع مجمّع PHP-FPM خاص به، فإصداره وحدوده وعمليّاته له وحده.

    أداء PHP
  • إصدار PHP لكل موقع

    يُختار لكل موقع من لوحة EGPNL، فيستطيع خادم واحد تشغيل عدة إصدارات جنبًا إلى جنب.

    لوحة التحكم EGPNL
  • OPcache

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

    أداء PHP
  • JIT

    يحوّل الكود كثير التنفيذ إلى لغة الآلة. يفيد الأعمال التي ترهق المعالج، ويغيّر القليل في موقع عادي ينتظر قاعدة بياناته.

    أداء PHP
  • التحميل المسبق

    في إطار العمل تُحمَّل ملفاته الأساسية مرة واحدة عند البدء وتبقى جاهزة. وإعادة التشغيل جزء من النشر.

    أداء PHP

الأدوات

ما يمكنك استخدامه في سطر الأوامر وفي الخلفية.

  • Composer

    دعم كامل لـ Composer، مع محمّل تلقائي محسَّن ودون حزم التطوير على الخادم.

    الاستضافة
  • عمّال الطوابير في الخلفية

    يعمل عمّال الطوابير تحت Supervisor، فتبقى المهام البطيئة بعيدة عن الصفحة التي ينتظرها الزائر.

    الاستضافة
  • الوصول عبر الطرفية

    وصول SSH لاستخدام Composer وسائر أعمال سطر الأوامر على تطبيقات PHP.

    الاستضافة
  • WP-CLI وDrush

    يأتي WP-CLI مثبّتًا مسبقًا لـ WordPress؛ ويُثبَّت Drupal ويُحدَّث بـ Composer وDrush.

    منصات PHP

الإضافات والذاكرات المؤقتة

الوحدات التي يحمّلها PHP والذاكرات المؤقتة في الذاكرة إلى جانبه.

  • إضافات ندير أمرها عنك

    تُثبَّت وتُفعَّل لكل موقع من اللوحة، بدل أن تمرّ عبر تذاكر الدعم.

    لماذا PHP
  • ionCube Loader

    يُثبَّت حيث تحتاجه منصة لتشغيل كود مشفَّر، كما تفعل WHMCS.

    منصات PHP
  • APCu

    ذاكرة مؤقتة في الذاكرة لقيم PHP، تُستخدم مع Redis للتخزين المؤقت وقفل الملفات في منصات مثل Nextcloud.

    منصات PHP
  • Redis

    ذاكرة مؤقتة وجلسات وطوابير وأقفال محفوظة في الذاكرة، على Redis لا يمكن الوصول إليه من الإنترنت.

    قواعد البيانات

البيانات وخادم الويب

أين تُحفظ السجلات ومن يردّ على الزائر.

  • MySQL وMariaDB

    جداول InnoDB تُدار بـ phpMyAdmin في الاستضافة، وتُثبَّت وتُضبَط وتُراقَب على الخوادم المُدارة.

    قواعد البيانات
  • PostgreSQL

    يُثبَّت ويُضبَط حيث يطلبه التطبيق، مثل المحاسبة وتخطيط الموارد والتقارير.

    قواعد البيانات
  • Nginx أو LiteSpeed

    يقدّم الصور والملفات بنفسه ويمرّر عمل PHP وحده إلى المجمّع خلفه.

    لماذا Nginx
  • HTTP/2 عبر TLS

    تُقدَّم الصفحات عبر HTTP/2 مع TLS، وتُثبَّت شهادات Let's Encrypt وتُجدَّد تلقائيًا.

    الاستضافة

أحضر لنا مشروعك على PHP

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

ميكيبيرد في ثواني