كل أسبوع تقريبًا حد بيسأل نفس السؤال: «أنا هتعلم PHP وبعدين ألاقي اللغة ماتت؟». السؤال ده مالوش لازمة لو مصدره تويتة أو كومنت في جروب، لكن ليه لازمة كبيرة لو انت داخل تدفع أربع شهور من عمرك في كورس باك إند. فخلينا نجاوب بجد بدل ما ندافع: سمعة PHP الوحشة كانت مستحقة، والزمن اللي كانت فيه مستحقة خلص من سنين — وده اللي هنفكّكه حتة حتة.
السمعة دي جت منين
لو انت شفت كود PHP قديم من عصر 5.2 أو اللي قبله، انت شفت لغة تانية خالص. الحاجات اللي بنت السمعة دي حقيقية ومحدش ينكرها:
- دوال
mysql_*القديمة اللي بتشجّعك حرفيًا تلزق مدخلات المستخدم جوه جملة SQL. ثغرات الحقن اللي طلعت من ده مالهاش عدد. الدوال دي اتشالت رسميًا من اللغة في PHP 7.0. - مكانش فيه
namespaceأصلًا قبل PHP 5.3 سنة 2009. يعني مشروع كبير كان بيتكتب بأسماء كلاسات زيMy_Project_Model_Userعشان مايحصلش تصادم. - أسماء دوال غير متسقة لحد النهاردة:
strlenمن غير شرطة سفلية وstr_replaceبشرطة، وترتيب المعاملات بيتقلب من دالة للتانية. ده إرث تاريخي واللغة عايشة بيه. - وأهم من ده كله: PHP كانت أسهل لغة يدخلها مبتدئ من غير ما حد يعلّمه حاجة، فالكود المكشوف على النت أغلبه كان كود مبتدئين. اللغة اتحاسبت على مستخدميها.
الخلاصة إن أغلب الكلام الوحش اللي بيتقال على PHP اتقال على كود اتكتب قبل 2012، ولسه شغال على سيرفرات كتير لحد النهاردة. الجزء ده مش هننكره. اللي هنقوله إنه مش وصف للغة اللي هتكتب بيها انت.
اللي اتغيّر فعلًا: من 7.0 لـ 8.5
مش تحسينات تجميلية. دي نُقلات في تعريف اللغة نفسها، وكل واحدة ليها تاريخ إصدار تقدر تراجعه على php.net:
- PHP 7.0 (ديسمبر 2015): محرك اللغة اتكتب من جديد. ده مكانش تحديث، ده استبدال — واستهلاك الذاكرة وسرعة التنفيذ اتغيروا بشكل ماحصلش قبل كده في تاريخ اللغة.
- PHP 8.0 (نوفمبر 2020): الأنواع الاتحادية
union types، والمعاملات المسماة، وترقية خصائص الكونستركتور، وmatch، والمعامل الآمن?->، والـ Attributes، وأول JIT. - PHP 8.1 (نوفمبر 2021): الـ
enumالحقيقي، وخصائصreadonly، والـ Fibers. - PHP 8.2 (ديسمبر 2022): كلاسات
readonlyكاملة. - PHP 8.3 (نوفمبر 2023): ثوابت الكلاس بأنواع، و
json_validate()، والسمة#[\Override]. - PHP 8.4 (نوفمبر 2024): الـ property hooks، والرؤية غير المتماثلة — تقرا من بره وتكتب من جوه بس.
- PHP 8.5 (نوفمبر 2025): معامل الأنبوب
|>.
بصّ على الفرق ده وانت شايف بعينك يعني إيه اللغة اتغيرت. الشكل القديم:
// PHP 5.4 — النوع مالوش أي ضمانة، والحالة أي نص، والخطأ بيظهر وقت التشغيل
class Order {
public $status;
public $total;
function __construct($status, $total) {
$this->status = $status;
$this->total = $total;
}
}
$order = new Order('padi', 250); // غلطة مطبعية عدّت عادي
والشكل اللي بنكتب بيه دلوقتي:
// PHP 8.3 — الحالات محصورة، والأنواع جزء من التعريف، والقيمة ما بتتغيرش بعد الإنشاء
enum OrderStatus: string
{
case Pending = 'pending';
case Paid = 'paid';
case Refunded = 'refunded';
}
final class Order
{
public function __construct(
public readonly OrderStatus $status,
public readonly int $totalPiastres,
) {}
}
$order = new Order(OrderStatus::Paid, 25000);
الكود التاني مش «PHP بشكل أحلى». ده كود مستحيل تحط فيه حالة مش موجودة، ومستحيل تغيّر إجمالي الأوردر بعد ما اتعمل، والمحرر بتاعك عارف نوع كل حاجة قبل ما تشغّل السطر. الفرق ده هو اللي بيخلّي مشروع بعد سنتين قابل للصيانة أو لأ.
طب والأداء؟
هنا لازم نبقى أمناء أكتر من الإعلانات. الـ JIT اللي دخل في 8.0 بيفرق بجد في الشغل الحسابي المكثّف — معالجة صور، حسابات في حلقات طويلة. لكن تطبيق ويب عادي أغلب وقته مش بيحسب، ده بيستنى قاعدة البيانات ترد. فلو حد قال لك «JIT خلّى موقعك أسرع تلات مرات» اسأله بيقيس إيه بالظبط.
المكسب الحقيقي في الأداء جه من مكان تاني: محرك 7.0، وOPcache اللي بيخزّن الكود المترجم فمايتقراش من الديسك كل ريكوست، والـ preloading اللي بيحمّل الكلاسات مرة واحدة مع تشغيل السيرفر. دي الحاجات اللي بتشوف أثرها في موقع حقيقي، ومحدش بيتكلم عنها لأنها مش مثيرة.
سياسة النسخ — الحتة اللي المفروض تبصّ عليها قبل أي اختيار
PHP بتطلّع نسخة كبيرة كل سنة في نوفمبر، وكل نسخة بتاخد سنتين دعم كامل وسنة تالتة إصلاحات أمنية بس. عمليًا يعني: PHP 8.1 خرجت من الدعم الأمني آخر 2025، و8.2 دعمها الأمني بينتهي آخر 2026. لو المشروع بتاعك شغال على 8.1 دلوقتي فانت مش على «لغة قديمة» — انت على لغة مش بتوصلها رقع أمان، وده كلام تاني خالص وبيتقال للعميل بالشكل ده.
ولارافيل ماشي على نفس المنطق: نسخة كبيرة كل سنة — 11 في مارس 2024، و12 في فبراير 2025 — وكل نسخة ليها إصلاحات أخطاء لمدة 18 شهر وإصلاحات أمنية لمدة سنتين. الأرقام دي مش تفاصيل؛ دي اللي بتخليك تقدر تقول لعميل «التحديث هياخد قد إيه ومتى بيبقى إجباري».
ليه الكلام ده يفرق في مصر تحديدًا
مش هقول لك نسبة. هقول لك تعمل إيه: افتح أي موقع توظيف مصري دلوقتي واكتب Laravel، وبعدها اكتب أي اسم تاني، وشوف العدد بعينك. ده مقياس أصدق من أي إحصائية أقدر أكتبها هنا وانت متقدرش تراجعها.
اللي بنشوفه في الشغل الفريلانس هنا كمان إن نسبة كبيرة من الطلبات هي أنظمة إدارة داخلية ومتاجر وموقع شركة عليه لوحة تحكم — والاستضافة المشتركة الرخيصة اللي أغلب العملاء الصغيرين بيشتروها بتيجي جاهزة لـ PHP. ده مش تفوق تقني، ده واقع سوق، ولو انت داخل تكسب منه فالواقع ده جزء من القرار.
إحنا في أكاديمية أنوبت بندرّس الباك إند بالترتيب ده عن قصد: PHP خام وبرمجة كائنية وSQL خام الأول، ولارافيل في آخر الكورس. عشان لما الطالب يشوف الـ framework يقول «آه، ده اللي كنت بعمله بإيدي» مش «ده سحر».
إمتى ماتختارش PHP
عشان الكلام يبقى متوازن، دي الحالات اللي فيها إجابتي مش PHP:
- شغل بيانات أو تعلّم آلة أو تحليل — روح Python من غير تفكير، المكتبات كلها هناك.
- خدمة عليها آلاف الاتصالات المفتوحة في نفس اللحظة زي شات ضخم أو ألعاب — Node أو Go أو Elixir أنسب معماريًا، حتى لو لارافيل بقى عنده حل للبث اللحظي.
- أدوات سطر أوامر أو خدمات صغيرة عايزة تتوزّع كملف واحد — Go بيحل ده بشكل أنضف.
- ولو الشركة اللي انت عايز تشتغل فيها كلها Node، اتعلم Node. اللغة أداة، والسوق اللي قدامك بيحدد الأداة قبل أي رأي على النت.
الخلاصة
PHP في 2026 مش «لسه عايشة». دي لغة بأنواع صارمة وenum وreadonly ومدير اعتماديات محترم وframework بيتحدّث كل سنة وله جدول دعم معلن. الحاجة الوحيدة اللي فضلت من السمعة القديمة هي الكود القديم — والكود القديم موجود في كل لغة، بس محدش بيحاسب اللغات التانية عليه.
الخطوة الجاية: بصّ على خريطة [كورس الباك إند](/courses/back-end) وشوف الترتيب اللي بندرّس بيه، وبعدها اقرا المقارنة الكاملة في [PHP ولا Python ولا Node](/blog/php-vs-python-vs-node) قبل ما تحسم اختيارك.