I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

ازاي تودع الـ var_dump والـ dd وتحترف تتبع الأخطاء المعقدة في PHP باستخدام Xdebug

ازاي تودع الـ var_dump والـ dd وتحترف تتبع الأخطاء المعقدة في PHP باستخدام Xdebug يا هلا بيك يا صديقي المبرمج. تعال نكون صرحاء مع بعض شوية؛ كام مرة لقيت نفسك قا

ازاي تودع الـ var_dump والـ dd وتحترف تتبع الأخطاء المعقدة في PHP باستخدام Xdebug
Reading Count: 4

ازاي تودع الـ var_dump والـ dd وتحترف تتبع الأخطاء المعقدة في PHP باستخدام Xdebug

يا هلا بيك يا صديقي المبرمج. تعال نكون صرحاء مع بعض شوية؛ كام مرة لقيت نفسك قاعد قدام الشاشة الساعة 3 الفجر، وكاتب عشرين أمر var_dump() أو print_r() ورا بعض جوه الكود عشان تعرف المتغير الفلاني شايل إيه؟ وكام مرة نسيت تشيلهم وطلعت الكود على الـ Production وحصلت كارثة؟ أصل مين فينا ما عداش باللحظة دي؟ استخدام أدوات الطباعة البسيطة زي الـ dd() في لارفال (Laravel) أو الـ var_dump() التقليدية هو حل سريع، بس صدقني ده عامل زي اللي ماشي في ظلام تام ومعاه كشاف موبايل ضعيف. النهاردة هعرفك على الحل الحقيقي والاحترافي: تتبع الأخطاء أو ما يُعرف بـ (Debugging) باستخدام أداة Xdebug مع محرر الكود الأحب لقلوبنا VS Code.

ليه لازم تبطل تعتمد على الـ var_dump وتاخد الخطوة مع Xdebug؟

لو هنتكلم عن تطوير الويب وتحديداً لغة PHP، فالأخطاء أنواع؛ فيه خطأ سهل يظهر لك في وشك، وفيه أخطاء منطقية (Logical Bugs) تخليك تلف حوالين نفسك ساعات وساعات. الـ Xdebug مش مجرد أداة طباعة، دي أداة تحليل وتتبع خط سير الكود (Step Debugging) لحظة بلحظة. التحرّك خطوة بخطوة جوه الكود بيسمح لك تشوف:

  • قيمة كل متغير في الذاكرة (Variables Scope) بتتغير إزاي في كل سطر.
  • تتبع الدوال اللي تم استدعاؤها لحد ما وصلنا للخطأ ده (Call Stack).
  • إيقاف الكود مؤقتاً عند سطر معينة باستخدام نقاط التوقف أو (Breakpoints).
  • التحكم الكامل في تنفيذ الكود (خطوة للأمام، تخطي دالة، أو الخروج منها).

متطلبات البدء وتجهيز بيئة العمل (Environment Setup)

عشان نربط الـ PHP بالـ VS Code ونشغل الـ Xdebug، محتاجين نمشي على خطوات مرتبة. المفترض إن عندك بيئة عمل محلية شغال عليها زي Xampp أو Laragon أو Docker. تعالوا نشوف الخطوات الأساسية:

الخطوة الأولى: تثبيت وتفعيل Xdebug في الـ PHP

أول حاجة محتاجين نتأكد إن إضافة Xdebug متثبيتة على نسخة الـ PHP بتاعتك. لو شغال على ويندوز، الموضوع أبسط بكتير. افتح ملف الـ php.ini بتاعك وأضف السطور دي في آخره (طبعاً مع مراعاة إصدار الـ Xdebug والتوافق مع نسخة الـ PHP):


[xdebug]
zend_extension=xdebug
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=127.0.0.1

بعد ما تحفظ الملف، اعمل إعادة تشغيل للـ Apache أو السيرفر المحلي بتاعك، واكتب في التيرمينال (Terminal) الأمر ده عشان تتأكد إن الدنيا تمام:


php -v

لازم تلاقيه بيذكر إن Xdebug متفعل مع إصدار الـ PHP.

الخطوة الثانية: تجهيز VS Code للإستماع

دلوقتي هندخل على محرر الكود VS Code ونثبت إضافة مهمة جداً اسمها PHP Debug من متجر الإضافات (Extensions). بعد ما تثبتها، هتعمل ملف إعدادات التتبع (launch.json) الخاص بالمشروع. هتروح على علامة التتبع في القائمة الجانبية (Run and Debug) وتعمل Create a launch.json وتختار PHP. الإعدادات الافتراضية هتكون بالشكل ده:


{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        }
    ]
}

تجربة عملية: إزاي توقف الكود وتتتبعه (Step Debugging)

دلوقتي جه وقت الشغل الجد! تخيل عندنا دالة بسيطة بنحسب فيها إجمالي السعر مع الخصم:


function calculateTotal($price, $discount) {
    $tax = 0.14;
    $finalPrice = $price - ($price * $discount);
    $totalWithTax = $finalPrice + ($finalPrice * $tax);
    return $totalWithTax;
}

$result = calculateTotal(100, 0.2);
echo $result;

لو عايز تتتبع الكود ده، هتعمل الآتي:

  • اضغط على الـ Red Dot (نقطة حمراء) شمال رقم السطر جوه الـ VS Code، وليكن عند سطر $finalPrice = ...؛ دي اسمها Breakpoint.
  • شغل زرار الاستماع في VS Code (دوس على العلامة الخضراء بتاعة Run أو F5).
  • افتح صفحة المتصفح واطلب الصفحة اللي فيها الكود ده.
  • هتلاحظ إن المتصفح كأنه "بيحمل" ومش بيعرض حاجة، ولو رجعت للـ VS Code هتلاقيه جابك عند السطر المحدد ونور باللون الأصفر!
  • دلوقتي من لوحة التحكم الخاصة بالـ Debugger في VS Code، تقدر تستخدم الأزرار دي:
    • Step Over (F10): عشان تنفذ السطر الحالي وتدخل على السطر اللي بعده.
    • Step Into (F11): لو السطر فيه دالة وعاوز تدخل جواها وتشوف بتشتغل إزاي.
    • Continue (F5): عشان تخلي الكود يكمل تنفيذ عادي لحد نقطة التوقف (Breakpoint) التالية.

في لوحة المتغيرات (Variables Panel) على الشمال، هتشوف بعينك قيمة $price و $discount وكمان الـ $tax لحظة بلحظة وهي بتتغير قدامك بدون ما تكتب ولا أمر طباعة واحد!

نصيحة من أخ: إزاي تطور مهاراتك في التتبع وتوفر وقتك

في الختام يا صاحبي، الانتقال من العادات القديمة للأساليب الاحترافية زي الـ Xdebug ممكن ياخد معاك يومين تلاتة من التعود، بس صدقني، الوقت اللي هتدفعه في الأول عشان تظبط إعداداتك، هترجعه أضعاف مضاعفة بعد كده لما تلاقي نفسك بتكتشف الأخطاء المعقدة في ثوانٍ معدودة بدل ما تقعد بالساعات تدور السطر الغلط فين. متخافش تجرب، واقرا وثائق الأداة (Documentation)، ودايماً خلي شعارك: "برمج بذكاء، مش بمجهود أكتر". بالتوفيق ليك، واستعد لنقلة نوعية في مستواك البرمجي!


Share

Related posts

Aug 22, 2026 • 1 min read
Reading Count: 6
تحسين أداء PHP-FPM مع سيرفرات NGINX

معرفتش تنام قبل كده عشان موقعك وقع مرة واحدة في نص الزحمة؟ أو جالك طلبات زيارة كتير (High Traffic) و...

Aug 21, 2026 • 1 min read
Reading Count: 9
الـ Attributes في PHP 8: بديل قوي للـ PHPDoc Annotations

يا هلا بيك يا بشمهندس! لو انت شغال تطوير مواقع الويب (Web Development) بلغة بي إتش بي (PHP) ، أكيد ف...

Aug 21, 2026 • 1 min read
Reading Count: 11
شرح ميزات PHP 8.1: قوة الـ Enums في الكود النظيف وتجنب الأخطاء

شرح ميزات PHP 8.1: قوة الـ Enums في الكود النظيف وتجنب الأخطاء يا هلا بيك يا بشمهندس في عالم البرمجة...