مدونة الويب 2.0

  • الرئيسية
  • تعريف بالمدونة
  • المصادر
  • تواصل معي
  • أخبار المدونة
  • أفكار
  • إضافات
  • برمجة
  • تصميم
  • تطوير
  • فعاليات
  • كتب
  • لقاءات
  • مدونات عربية
  • مشاريع
  • مهمات
  • مواقع

تنقيح الكود باستخدام PDT + Xdebug

May 3, 2009 - الأحد 10 جمادى الأولى 1430 التصنيف: برمجة

السلام عليكم،
لعل تنقيح كود PHP من أهم الأمور التي تشغل مبرمجي هذه اللغة، فيضطر دائماً إلى استخدام تعليمات (echo, print_r, var_dump) لرؤية المتحولات وتغيراتهم. أما باستخدام منقح Xdebug فالحال يختلف كثيراً حيث يمكنك وضع نقاط التوقف (break points) ومشاهدة حالة المتحولات في هذه النقاط والمحتولات الموجودة أيضاً.
PHP PDT Xdebug

سنستخدم لهذا الغرض نسخة Eclipse المعدة للغة PHP وهي Eclipse PDT والمنقح Xdebug، سنقوم بإعداد بيئة التنقيح على المخدم المحلي (localhost) وسنحتاج للتعديل على ملف php.ini.

1- قم بتحميل xDebug من موقعه، اختر النسخة 5.2 VC6 المتوافقة مع PHP 5.2 و PHP 5.1.
2- أضف الملف الذي حملته (filename.dll) إلى مجلد الإضافات في المخدم المحلي، عادة يكون داخل مجلد PHP/ext.
3- أضف هذه الأسطر إلى ملف php.ini في نهاية الملف:

[xdebug]
zend_extension_ts="D:/www/php5/ext/php_xdebug.dll"
xdebug.profiler_output_dir = "D:/www/tmp/xdebug"
xdebug.profiler_output_name = "cachegrind.out.%p"
xdebug.profiler_enable = 0
xdebug.profiler_append=0
xdebug.extended_info=1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.idekey=xdebug
xdebug.remote_log="D:/www/tmp/xdebug/xdebug_remot.log"
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0

انتبه في السطر الأول إلى مسار مخدمك المحلي فالمسار عندي ربما يختلف عن المسار عندك، أيضاً أنشأ مجلد xdebug داخل مجلد tmp
4- الآن أعد تشغيل المخدم المحلي واستدعي صفحة تحتوي على ()phpinfo لترى مثل هذه النتيجة:
phpinfo
5- الآن انتهينا من إعداد المخدم المحلي وسنتجه إلى PDT، من قائمة Window اختر Preferences ثم PHP واختر Debug، ادخل هذه النافذة اختر نوع المنقح PHP Debugger منقح Xdebug.

انتهينا من إعداد PDT والآن ماعلينا سوى تجربة المنقح وكيفية العمل عليه:
1- أنشأ مشروع جديد وأضف ملف وبعض الكود ولاتنسى أن المشروع يجب أن يكون داخل المخدم المحلي (localhost).

إنشاء مشروع جديد

إنشاء مشروع جديد


2- اختر السطر الذي تريد وضع نقطة توقف عنده واضغط على جانب رقم هذا السطر لتظهر دائرة زرقاء تشير إلى نقطة توقف عند هذا السطر.
breakpoint
3- إذا لم تكن تستخدم منظور PHP فاختر من قائمة window خيار Open Perspective واختر PHP.
4- اختر من قائمة Run خيار Debug Configurations …
debug confingurations
واضغط على زر debug الآن سيعطيك رسالة بأنه سيستعمل منظور PHP Debug اضغط موافق واستمتع بالمنقح ونقاط التوقف، تابع حالة المتحولات، استعمل F5 للاستمرار في التنقيح.
debug view

شارك هذه التدوينة:
إضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى Del.icio.usإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى diggإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى Technoratiإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى Stumble Uponإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى Google Bookmarksإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى FaceBookإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى MySpaceإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى Twitterإضافة 'تنقيح الكود باستخدام PDT + Xdebug' إلى FriendFeed
الوسوم: php, برمجة, تكتيك, نصائح
أرسل هذه التدوينة لصديق أرسل هذه التدوينة لصديق
طباعة هذه التدوينة طباعة هذه التدوينة

    إقرأ أيضاً:

    • أوراق المساعدة
    • الميزات المرتقبة لـ PHP6
    • مستقبل الدروبال
    • مقدمة في الاختبارات الآلية
    • نصائح php الجزء الثالث

14 تعليق في “تنقيح الكود باستخدام PDT + Xdebug”

  1. عبدالملك الثاري: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 8:36 ص

    ممتاز جداً يعطيك ألف عافية أخوي خالد, نستخدم هالطريقة بالفيجوال ستديو بشكل دائم وطريقة عملية جداً لحل المشكلات ومعرفة قيم المتغيرات.

    شكراً لك


  2. Adnan: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 1:20 م

    شكراً كتير, كنت مثل الغبي,اسمع كلمة Debug قوم اهرب,بس هلأ عرفت شو ميزتها,والأداة الحلوة هي,بس بدي شوف إذا في شي اسهل و اريح منها,لأنو الEclipse ما بستخدمه للتطوير مواقع الويب.
    سلام.


  3. اسماعيل: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 2:22 م

    السلام عليكم
    للاسف اخي, منظور PHP Debug لم ينجح معي لكن عملية التنصيب نجحت تماماً.
    لا اعلم ما المشكلة


  4. خالد: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 2:39 م

    @عبد الملك: الله يعافيك وصحيح طريقة لابد منها لكل مطور أن يستعملها.

    @عدنان: مامشكلة هي صرت بتعرف :) بشكل عام مافي لل php غير منقحين هما Xdebug and Zend debugger

    @اسماعيل: اختر من قائمة Window خيار Open Perspective واختر other ثم من النافذة التي تظهر اختر PHP Debug


  5. عمر الدليمي: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 4:53 م

    شكراً أخ خالد،
    ولمستخدمي Aptana Studio، فهذه الميزة موجودة أيضاً،
    وطريقة إستخدامها كالتالي:
    من قائمة Run إختر Debug as وأختر PHP Script هذه الطريقة نجحت معي :) ، في آخر تحديث لAptana.
    وللعلم فقط أن Aptana تحوي على نسخة معدلة من xDebug وPDT ^.^.


  6. خالد: May 3, 2009 - الأحد 10 جمادى الأولى 1430 في 6:06 م

    أهلاً أخي عمر خبير Aptana وشكراً على الإفادة.


  7. Vexard: May 5, 2009 - الثلاثاء 12 جمادى الأولى 1430 في 1:04 م

    تسلم ايدك استاذ خالد
    معلومات جديدة كالعادة :) وشرح سلس

    فى انتظار المزيد والمزيد من هذه المواضيع الرائعة (طمع:))


  8. خالد: May 5, 2009 - الثلاثاء 12 جمادى الأولى 1430 في 2:19 م

    االله يسلمك وشرفتنا بتعليقك


  9. محمود العريفي: June 9, 2009 - الثلاثاء 16 جمادى الثانية 1430 في 3:26 م

    السلام عليكم شكرا للأخ خالد على هذا الموضوع أنا مبرمج(مبتدىء) حصلت على دورة في برمجة php وأٌقوم بتطوير نفسي في البرمجة لأني لم أحصل على عمل في البرمجة لكن بعد مررو سنة في البرمجة أكتشفت نفسي أنني لاأستطيع إلا تركيب السكربتات والتعديل في أمور بسيطة فقط , وأكتشفت أيضاً أن أغلب المبرمجين(وخاصة العرب) لايقومون بعمل مشاريع برمجية ولكن يقومون بأستعمال السكربتات الجاهزة والمحترف منهم الذي يستطيع التعديل في السكربت وتغير ملامحه والمتوسط منهم الذي يستطيع التعريب والمبتدىء منهم الذي يقوم بتركيب السكربت , ومابين المبتدىء والمتوسط الذي يستطيع أستخدام السكربت بكفائه بعد تركيبه (على قول المثل الشائع في تقنية المعلومات “أبدأ من حيث ماأنتهى الأخرون”)

    * طبعاً يوجد أناس يقومون بعمل مشاريع خاصة ولكن هم أقلية او مع الشركات والمؤسسات البرمجية.

    * ويوجد أناس أخرين حق كلام فقط لكن عنده معلومات وليس خبرة.

    * وأغلب المنتجات البرمجية من الشركات(وخاصة العربية) مبنية من سكربتات مفتوحة المصدر.

    ملاحظة / أتحدى أي واحد منكم يقول لي كلام غير كذا.

    بأختصار شديد جداً ماأحد يستفيد من البرنامج هذا إلا المبرمج الخبير.

    وشكراً.

    (المعذرة على طول الرد لأني والله أتكلم من القهر من حركات أغلب المبرمجين العرب الذين يدّعون الأحترافيه ولايدعونك تتطلع على أعمالهم ولا طريقة عمله يقول لك هذا أسراري وتعبي وعندما تكتشف طريقة عمله تجد أنه يقوم بتركيب السكربت والتعديل عليه في امور بسيطة.)

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

    أنا ركبت برنامج Aptana وماأفدني بشء , الدريم ويفر أفضل بسيط وقوي.


  10. خالد: June 9, 2009 - الثلاثاء 16 جمادى الثانية 1430 في 3:58 م

    كلامك صحيح أخي الكريم ومالك إلا تتجاهل هذه الفئة وتخفف من غضبك قليلاً :)


  11. برامج مجانية للويندوز: July 21, 2009 - الثلاثاء 30 رجب 1430 في 1:20 ص

    شكرا على الشرح
    لقد واجهتني مشكلة في المرحلة الأخيرة حيث عندما أضغط على Debug يظهر Progress وهو متوقف عند 19%
    Launching : waiting for XDebug session
    مع فتح للمتصفح وهو يتعرض نتيجة تطبيق الصفحة المراد تنقيحها.
    أرجوا ان اجد عندك حل للمشكلة ؟
    علما أني أستخدم ال XAMPP
    وعند التعديل في ملف PHP.ini غير مايجب تغييره مع إضافة ; لكل سطر نظرا لعدم اشتغال السرفر بدونها.


  12. خالد: July 21, 2009 - الثلاثاء 30 رجب 1430 في 6:42 ص

    أسف ولكن لا أعلم ما المشكلة حاول البحث في غوغل


  13. برامج مجانية للويندوز: July 26, 2009 - الأحد 05 شعبان 1430 في 1:32 م

    تعلمت أن إضافة ; قبل كل سطر في php.ini يعتبر كتعليق
    لذلك قمت بوضع ; عند بداية كل سطر من سطور الخاصة بـ [Zend]
    مع إضافة الأسطر الموضوعة هنا في نهاية الملف
    وتغير قيمتين في الملف وهما
    implicit_flush = On
    output_buffering = 0

    فحلت المشكلة والحمد لله
    شكرا على الإشارة إلى التنقيح بإستعمال pdt . فأنان كنت أستخدم Notepad++ وأخطأت في كتابة __construct فوضعت __constract عند تطبيق الصفحة لاتظهر الأخطاء لكن يتم إضافة قيم فارغة إلى قاعدة البيانات. يومين وأنا افحص الملف ولم أجد الخطأ لكن بعدما نجحت بإستعمال pdt وجدت الخطاء :)


  14. خالد: July 26, 2009 - الأحد 05 شعبان 1430 في 6:37 م

    شكراً لمشاركتنا الفائدة وماشاء الله عليك حليتها ;)


شاركنا برأيك؟

الرجاء الكتابة باللغة العربية الفصحى، وإذا كنت تريد كتابة سؤال حاول البحث في غوغل أولاً فغالباً ستجد عنده الخبر اليقين.

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • أفضل الأدوات لرفع الملفات
  • تنظيم الوقت البرمجي
  • مقدمة في CakePHP
  • أفكار ومواقع ويب 2 شهيرة
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • هل تريد أن تكسب 1000 دولار؟
  • تصميم قاعدة البيانات
  • مواقع عربية بالدروبال
    1. كتب مطلوبة
    2. إصلاح علة أمنية في دروبال 7.3 و 7.4
    3. حل المشكلة أم الترقيع؟
    4. مراجعة كتاب 50 Tips and Tricks for MongoDB Developers
    5. تعريب الوحدات الإضافية
    6. البرامج العربية
    7. تعريب الدروبال 7 – العد التنازلي للنواة
    8. تعريب الدروبال 7 – اليوم الثالث
    9. تعريب الدروبال 7 – اليوم الثاني
    10. تعريب الدروبال 7 – اليوم اﻷول
    11. تعريب الدروبال 7
    1. يونيو 2011
    2. مايو 2011
    3. أبريل 2011
    4. مارس 2011
    5. فبراير 2011
    6. يناير 2011
    7. ديسمبر 2010
    8. نوفمبر 2010
    9. أكتوبر 2010
    10. أغسطس 2010
    11. مارس 2010
    12. فبراير 2010
    13. يناير 2010
    14. ديسمبر 2009
    15. سبتمبر 2009
    16. أغسطس 2009
    17. يوليو 2009
    18. يونيو 2009
    19. مايو 2009
    20. مارس 2009
    21. فبراير 2009
    22. يناير 2009
    23. ديسمبر 2008
    24. نوفمبر 2008
    25. أكتوبر 2008
    26. سبتمبر 2008
    27. أغسطس 2008
    28. يوليو 2008
    29. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • أشارك بتعريب دروبال 7

    • أراجع كتب Oreilly

      I review for the O'Reilly Blogger Review Program
    • أفضل هدية تقدمها لي

    • تقنية الطماطم

      I Use the Pomodoro Technique
    • عشرون عام لمشروع اللينكس

      I'll be celebrating 20 years of Linux with
The Linux Foundation!
    • وسوم

      Ajax css IDE jQuery php SEO TinyMCE أخبار المدونة أذكار أطر العمل أفكار أمازون إدارة المحتوى إدارة محتوى إضافات استبيان الأجاكس الأمان الاختبارات الآلية الكيك اللغة العربية برمجة تحديثات تحميل تدوينات رمضان تصميم تطوير تعريب تعلم الكيك وتطوير المواقع بالبيت تكتيك تنظيم الوقت جوائز حديث دروبال دعاية فايرفوكس فرص عمل كتب مسابقات مشاريع مهمات مواقع نصائح هندسة برمجيات وورد بريس

    حول المدونة

    • 2008-2012 مدونة الويب 2.0.
    • يمكنك نقل المحتويات أو اقتباس أي جزء منها ويفضل ذكر المصدر.
    • من الممكن أن تساعدك خريطة الموقع.

    عروض العمل

    • يمكنك أن تناقشني حول عروض العمل للمدونات أو لمواقع الويب 2.0.
    • أيضاً يمكنك استشارتي في وضع التفاصيل لمدونة أو لفكرة مشروع جديد.
    • سيرتي الذاتية على My Linkedin Profile

    تواصل معي

    • خالد الحوراني مطور ويب 2.0
    • تابع أخباري على My Twitter account
    • أو راسلني فوراً

    Switch to our mobile site