مدونة الويب 2.0

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

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

3, مايو 2009 التصنيف: برمجة

السلام عليكم،
لعل تنقيح كود 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 الجزء الثالث
    • نصائح php الجزء الثاني

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

  1. عبدالملك الثاري: 3, مايو 2009 في 8:36 ص

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

    شكراً لك


  2. Adnan: 3, مايو 2009 في 1:20 م

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


  3. اسماعيل: 3, مايو 2009 في 2:22 م

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


  4. خالد: 3, مايو 2009 في 2:39 م

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

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

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


  5. عمر الدليمي: 3, مايو 2009 في 4:53 م

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


  6. خالد: 3, مايو 2009 في 6:06 م

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


  7. Vexard: 5, مايو 2009 في 1:04 م

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

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


  8. خالد: 5, مايو 2009 في 2:19 م

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


  9. محمود العريفي: 9, يونيو 2009 في 3:26 م

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

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

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

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

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

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

    وشكراً.

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

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

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


  10. خالد: 9, يونيو 2009 في 3:58 م

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


  11. برامج مجانية للويندوز: 21, يوليو 2009 في 1:20 ص

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


  12. خالد: 21, يوليو 2009 في 6:42 ص

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


  13. برامج مجانية للويندوز: 26, يوليو 2009 في 1:32 م

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

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


  14. خالد: 26, يوليو 2009 في 6:37 م

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


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

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

  • الأكثر قراءة
  • الأحدث
  • الأرشيف
  • تعلم الكيك وتطوير المواقع بالبيت
  • تنظيم الوقت البرمجي
  • أفكار ومواقع ويب 2 شهيرة
  • مقدمة في CakePHP
  • لماذا غوغل شريرة!
  • الخطوط العربية
  • تصميم قاعدة البيانات
  • هل تريد أن تكسب 1000 دولار؟
  • مواقع عربية بالدروبال
  • موقع الجزيرة الجديد
    1. غوغل، جوجل، كوكل أو قوقل!
    2. دروبال تعلمه بالعربي
    3. تحديثات بالجملة
    4. صفحة 404
    5. مدونة الويب 2.0 في 2010
    6. عن غيوم
    7. وحدة Scrollable Content لدروبال
    8. موقع بدون قاعدة بيانات
    9. دول العالم باللغة العربية
    10. ثيم خفيفة للفايرفوكس
    1. أغسطس 2010
    2. مارس 2010
    3. فبراير 2010
    4. يناير 2010
    5. ديسمبر 2009
    6. سبتمبر 2009
    7. أغسطس 2009
    8. يوليو 2009
    9. يونيو 2009
    10. مايو 2009
    11. مارس 2009
    12. فبراير 2009
    13. يناير 2009
    14. ديسمبر 2008
    15. نوفمبر 2008
    16. أكتوبر 2008
    17. سبتمبر 2008
    18. أغسطس 2008
    19. يوليو 2008
    20. يونيو 2008
    • اشترك بآخر الأخبار RSS

      Feeds Counter

      أو

    • الاستبيان

      هل طورت أو ساعدت بتطوير مشروع مفتوح المصدر؟

      مشاهدة النتيجة

      Loading ... Loading ...
    • أوسمة

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

    حول المدونة

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

    عروض العمل

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

    تواصل معي

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