PHP لدى EGPHP
كل ما نبنيه يبدأ بلغة PHP.
يكتب فريقنا PHP ويشغّلها منذ خمسة وعشرين عامًا، أي منذ PHP 4. والخوادم ولوحة التحكم والمواقع التي نرعاها كلها تبدأ من هنا.
خمسة وعشرون عامًا، إصدارًا بعد إصدار
لم نعرف هذه الإصدارات من القراءة عنها، بل رقّينا مواقع حقيقية عبر كلٍّ منها، وكل سطر أدناه تغييرٌ اضطررنا إلى التعامل معه على خادم يعمل فعليًا.
-
PHP 4 2000
الجلسات وتخزين المخرجات مؤقتًا، ضمن اللغة
وصل Zend Engine، فصارت الجلسات وتخزين المخرجات مؤقتًا جزءًا من اللغة بدلًا من إضافات خارجية. وعليه كُتب جيل كامل من المواقع الديناميكية الأولى.
Zend Enginesession_start()ob_start()
ماذا عنى لناهنا بدأ فريقنا: مواقع مكتوبة يدويًا على خوادم مشتركة، وما زال register_globals مفعّلًا.
-
PHP 5.0 2004
نموذج كائنات حقيقي
جاء Zend Engine 2 بأصناف ذات مستويات وصول، وبالواجهات والاستثناءات، وبكائنات تُمرَّر بمقبضها بدلًا من نسخها، وبامتدادَي MySQLi وSimpleXML.
privateinterfacetry / catchmysqli
ماذا عنى لناصار بالإمكان تنظيم الشيفرة في أصناف يتشاركها الفريق، وحصلت قاعدة البيانات على مشغّل حديث.
-
PHP 5.3 2009
مساحات الأسماء والدوال المغلقة
مساحات الأسماء والدوال المجهولة والربط الساكن المتأخر: الأساس الذي بُني عليه لاحقًا Composer ومنظومة الحزم المشتركة.
namespacefunction () use ()static::
ماذا عنى لناأخيرًا صار بإمكان مكتبات من مؤلفين مختلفين أن تتعايش في مشروع واحد دون أن تتصادم أسماؤها.
-
PHP 5.4 2012
السمات والمصفوفات المختصرة وحملة تنظيف عطّل الشيفرة القديمة
السمات، وصيغة المصفوفات المختصرة []، وخادم تطوير مدمج، بينما أُزيلت register_globals والاقتباسات السحرية (magic quotes) والوضع الآمن (safe mode) نهائيًا.
trait[ ]php -S
ماذا عنى لناتوقفت المواقع القديمة المعتمدة على register_globals عن العمل، وصارت ترقيتها تعني إصلاحها أولًا.
-
PHP 5.5 2013
OPcache مدمج في PHP
صار OPcache يأتي مع PHP نفسها ويحفظ السكربتات المترجمة في الذاكرة، إلى جانب المولّدات والدالة password_hash().
opcacheyieldpassword_hash()
ماذا عنى لناشيفرة مترجمة تبقى في الذاكرة بدلًا من إعادة قراءتها مع كل طلب. وما زال أول إعداد نفحصه على أي خادم PHP.
-
PHP 6 لم يصدر قط
الإصدار الذي لم يصدر قط
خُطط لإصدار PHP 6 حول دعم أصيل لسلاسل Unicode النصية، ثم جرى التخلي عنه. وحمل الإصدار التالي الرقم 7 حتى لا يُخلط بينه وبين الكتب والخطط التي كُتبت للإصدار 6.
-
PHP 7.0 2015
قفزة السرعة عطّل الشيفرة القديمة
محرك أُعيد بناؤه، وصفه مشروع PHP بأنه أسرع بما يصل إلى الضعف من 5.6 مع استهلاك أقل للذاكرة، إضافةً إلى تصريحات الأنواع البسيطة وأنواع القيم المُرجعة، والعاملَين ?? و <=>.
int $id: string??<=>
ماذا عنى لناأُزيلت دوال mysql_* القديمة، وكان ذلك سببًا متكررًا لتعطّل المواقع القديمة عند هذه الترقية.
-
PHP 7.4 2019
الخصائص محددة النوع والتحميل المسبق
الخصائص محددة النوع، والدوال السهمية، والعامل ??=، والتحميل المسبق في OPcache، وFFI.
public int $idfn ($x) =>??=
ماذا عنى لناآخر إصدارات 7.x، والإصدار الذي بقيت عليه تطبيقات قديمة كثيرة أطول مدة، ولهذا ما زلنا ننقل مواقع منه.
-
PHP 8.0 2020
JIT والواصفات والوسائط المسمّاة عطّل الشيفرة القديمة
مترجم JIT، والواصفات، والوسائط المسمّاة، وأنواع الاتحاد، وتعبير match، وعامل الأمان من القيم الفارغة ?->، وترقية خصائص المُنشئ.
#[Attribute]match?->JIT
ماذا عنى لناتحوّلت تحذيرات كثيرة إلى أخطاء، وتغيّرت المقارنة بين النصوص والأرقام، فقد تتوقف على 8.0 شيفرةٌ كانت تعمل بهدوء على 7.4.
-
PHP 8.1 2021
التعدادات والقراءة فقط والألياف
تعدادات أصيلة، وخصائص للقراءة فقط، والألياف (fibers)، ونوع الإرجاع never، وصيغة الاستدعاءات من الدرجة الأولى.
enumreadonlyFibernever
ماذا عنى لنافتحت الألياف الطريق أمام مكتبات PHP غير المتزامنة، دون تغيير طريقة تنفيذ الطلب العادي.
-
PHP 8.2 2022
أصناف للقراءة فقط، وتحذير للشيفرة القديمة
أصناف للقراءة فقط، وأنواع DNF، والقيم true وfalse وnull أنواعًا مستقلة، وامتداد Random جديد.
readonly class(A&B)|nullRandom\Randomizer
ماذا عنى لناأُعلن إهمال الخصائص الديناميكية، فملأت الإضافات القديمة السجلات بالتنبيهات حتى حُدّثت.
-
PHP 8.3 2023
الثوابت محددة النوع والواصفة #[\Override]
ثوابت أصناف محددة النوع، والواصفة #[\Override]، والدالة json_validate()، وجلب ثوابت الأصناف ديناميكيًا.
const string#[\Override]json_validate()
ماذا عنى لناإصدار أهدأ، ما يجعله خطوة سهلة للمواقع التي تعمل على 8.2 أصلًا.
-
PHP 8.4 2024
خطافات الخصائص
خطافات الخصائص، ومستويات وصول غير متماثلة، والكائنات الكسولة، ومحلّل DOM يفهم HTML5، وكتابة new MyClass()->method() دون الأقواس الإضافية.
get { }public private(set)Dom\HTMLDocument
ماذا عنى لنادوال القراءة والتعيين التي كانت تحتاج كلٌّ منها إلى دالة مستقلة صارت جزءًا من الخاصية نفسها، فتقلّ الشيفرة التي تحتاج إلى صيانة.
-
PHP 8.5 2025
عامل الأنبوب الحالي
عامل الأنبوب |>، وامتداد URI مدمج، وclone with، والواصفة #[\NoDiscard]، والدالتان array_first() وarray_last()، وتتبّع الاستدعاءات عند الأخطاء الفادحة.
|>Uri\Rfc3986\Uriclone($o, [ ])
ماذا عنى لناسلسلة الإصدارات الحالية، وعليها نبدأ المواقع الجديدة حين تدعمها شيفرتها.
السنوات هي سنوات الإصدار الأول لكل نسخة، كما وردت في سجل الإصدارات الخاص بمشروع PHP نفسه.
تتبّع طلبًا واحدًا عبر طبقات المنظومة
تمرّ الصفحة على موقع PHP بخمس طبقات في طريقها إلى الداخل، ثم تعود صاعدةً عبر الطبقات الخمس نفسها في طريقها إلى الخارج. نحن نرعى كل واحدة منها، ولكلٍّ منها صفحتها الخاصة.
-
الزائر
يطلب المتصفح صفحة عبر HTTPS. وتحدد الشهادة والجدار الناري والقواعد الموضوعة أمام الخادم ما إذا كان الطلب سيُسمح له بالدخول أصلًا.
-
خادم الويب
يستقبل Nginx أو LiteSpeed الاتصال، ويقدّم الصور والملفات بنفسه، ولا يمرّر إلى المجمّع الذي خلفه إلا عمل PHP.
-
بيئة تشغيل PHP
مجمّعات PHP-FPM، مجمّع لكل موقع، كلٌّ منها على إصدار PHP الذي تحتاجه شيفرته، مع OPcache ساخن وعمليات محسوبة على حجم الزيارات.
-
شيفرتك
يحوّل إطار عمل أو منصة جاهزة الطلب إلى صفحة: تطبيق Laravel الخاص بك، أو WordPress وMagento وMoodle وغيرها.
-
البيانات
يحفظ MySQL أو MariaDB السجلات، ويُبقي Redis في الذاكرة ما يُطلب مرة بعد مرة.
الخادم نفسه
خوادمنا نحن، يديرها الفريق نفسه، وفوقها لوحة التحكم الخاصة بنا.
الانتقال إلى PHP أحدث دون صباح عصيب
لكل موقع مجمّعه الخاص، فيستطيع خادم واحد تشغيل عدة إصدارات من PHP جنبًا إلى جنب، وينتقل كل موقع حين تجهز شيفرته، لا حين يجهز الخادم.
نحصر ما يعمل عليه كل موقع
إصدار PHP الخاص به، وامتداداته، والإضافات أو الحزم التي تعيقه.
نسخة تجرّب الإصدار الجديد
يُنسخ الموقع ويُشغَّل على إصدار PHP التالي، ويُقرأ سجل أخطائه سطرًا سطرًا.
نصلح ما يتعطّل
تُصلَح أو تُستبدل الدوال المُزالة، والاستدعاءات المُهمَلة، والإضافات التي لا تحديث لها.
موقعًا بعد موقع
ينتقل كل موقع إلى مجمّعه الجديد وحده، ويمكن إعادته فورًا إن فات شيء.
| الموقع | 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 كل فرع أربع سنوات: سنتان من إصلاحات الأخطاء والأمان، ثم سنتان من إصلاحات الأمان فقط. وبعد ذلك لا توجد أي إصلاحات. هذا هو التقويم للإصدارات المذكورة في هذه الصفحة.
- إصلاحات الأخطاء والأمان
- إصلاحات الأمان فقط
- تجاوز نهاية عمره
- اليوم
-
PHP 7.4 نهاية العمر
الإصدار الذي بقيت عليه كثير من التطبيقات القديمة أطول مدة.
- تاريخ الإصدار
- 2019-11-28
- نهاية العمر
- 2022-11-28
-
PHP 8.0 نهاية العمر
- تاريخ الإصدار
- 2020-11-26
- نهاية العمر
- 2023-11-26
-
PHP 8.1 نهاية العمر
- تاريخ الإصدار
- 2021-11-25
- نهاية العمر
- 2025-12-31
-
PHP 8.2 إصلاحات الأمان فقط
- تاريخ الإصدار
- 2022-12-08
- إصلاحات الأخطاء حتى
- 2024-12-31
- إصلاحات الأمان حتى
- 2026-12-31
-
PHP 8.3 إصلاحات الأمان فقط
- تاريخ الإصدار
- 2023-11-23
- إصلاحات الأخطاء حتى
- 2025-12-31
- إصلاحات الأمان حتى
- 2027-12-31
-
PHP 8.4 دعم فعّال
يعمل على استضافتنا، مع تفعيل OPcache وJIT.
- تاريخ الإصدار
- 2024-11-21
- إصلاحات الأخطاء حتى
- 2026-12-31
- إصلاحات الأمان حتى
- 2028-12-31
-
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 أحدث، أو منصة تريد تثبيتها، أو خادم يشغّل ذلك كله. نسعّر كل مهمة بعد محادثة قصيرة.