كيفية إعداد بيئة تصحيح أخطاء محلية في PHP

لقد بدأت مؤخرًا في التركيز أكثر على PHP ، وكنت بحاجة إلى إعداد بيئة تصحيح أخطاء محلية. نظرًا لعدم وجود العديد من البرامج التعليمية حول كيفية القيام بذلك ، فقد واجهت بعض المشاكل حول كيفية إعداد وتشغيل.

من خلال الجمع بين بعض البرامج التعليمية وقضاء بضع ساعات في العديد من المنتديات ، توصلت إلى هذا النص. يعمل التطبيق الذي أعمل عليه داخل صندوق Vagrant المهتز بطريقة ما. ينهار من وقت لآخر ، لذا لا بد لي من إعادة هذا الإعداد ، وبالتالي أعرف أن هذا الإعداد يعمل :).

الهدف من هذا البرنامج التعليمي هو تشغيل Xdebug على الخادم الخاص بك ثم توجيه PhpStorm إلى Xdebug.

هيا بنا نبدأ.

المتطلبات الأساسية

إذا لم يكن لديك Xdebug مثبتًا على الخادم الخاص بك ولكنك تستخدم PHP7 ، فيمكنك القيام بذلك باستخدام إرشادات التثبيت المخصصة من موقع Xdebug الرسمي هنا.

ومع ذلك ، نظرًا لأن مشروعي يستخدم PHP5 ، فقد اضطررت إلى القيام بذلك بالطريقة القديمة: البحث عنها في المنتديات .

في هذا البرنامج التعليمي ، سأفترض أن لديك Xdebug مثبتًا.

ابدء

تحتاج أولاً إلى العثور على موقع ملف xdebug.so على الخادم الخاص بك. انسخ الموقع في مكان ما حيث ستستخدمه لاحقًا.

locate xdebug.so

أنت الآن بحاجة إلى التنقل داخل الخادم الخاص بك إلى موقع: /etc/php5/apache2/conf.d/ وتحقق مما إذا كان الملف 20-xdebug.ini موجودًا هناك. إذا لم يكن موجودًا ، فقم بإنشاء واحد. يمكنك إنشاء واحد باستخدام أوامر مثل touch و vim و vi و nano وما إلى ذلك.

يمكنك رؤية مشروعي تم إنشاؤه في PHP5 ، لذا قم بتغيير اسم المجلد / الموقع وفقًا لإصدار PHP الخاص بك.

افتح الآن ملف 20-xdebug.ini والصقه في:

zend_extension=”location to your xdebug.so file” xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_host=”your localhost address” xdebug.remote_autostart=1 xdebug.remote_connect_back=0 xdebug.remote_handler=”dbgp” xdebug.remote_mode=req xdebug.remote_cookie_expire_time=-9999 xdebug.remote_log=”/tmp/xdebug.log” xdebug.var_display_max_depth=15 xdebug.profiler_enable=0 xdebug.idekey=”phpstorm”

من شرح ملف 20-xdebug.ini الذي تمت كتابته أدناه ، سترى أن بعض هذه الإعدادات غير ضرورية ، أو أنه تم تعيينها على قيمة افتراضية. احتفظ بهذه القيم في ملف 20-xdebug.ini لأن من الجيد معرفتها.

شرح ملف 20-xdebug.ini:

  • xdebug.remote_enable - يتحكم في ما إذا كان يجب على Xdebug محاولة الاتصال بعميل تصحيح الأخطاء الذي يستمع إلى المضيف والمنفذ كما تم ضبطه مع الإعدادات
  • xdebug.remote_port - المنفذ الذي يحاول Xdebug الاتصال به على المضيف البعيد. الافتراضي هو 9000.
  • xdebug.remote_host - تحديد المضيف حيث يتم تشغيل عميل التصحيح. الافتراضي هو المضيف المحلي.
  • xdebug.remote_autostart - عند تعيين هذا الإعداد على 1 ، سيحاول Xdebug بدء جلسة تصحيح أخطاء عن بُعد ومحاولة الاتصال بعميل.
  • xdebug.remote_connect_back - في حالة تمكينه ، يتم تجاهل إعداد xdebug.remote_host وسيحاول Xdebug الاتصال بالعميل الذي قدم طلب HTTP. الافتراضي هو 0.
  • xdebug.remote_handler - يمكن أن يكون "php3" الذي يحدد إخراج مصحح أخطاء نمط PHP 3 القديم ، "gdb" الذي يمكّن GDB مثل واجهة مصحح الأخطاء أو "dbgp" - بروتوكول مصحح الأخطاء. بروتوكول DBGp هو البروتوكول الوحيد المدعوم. الافتراضي هو dbgp.
  • xdebug.remote_mode - تحديد وقت بدء اتصال تصحيح الأخطاء. يمكن أن يحتوي هذا الإعداد على قيمتين مختلفتين: req - سيحاول Xdebug الاتصال بعميل التصحيح بمجرد بدء البرنامج النصي. jit - سيحاول Xdebug الاتصال بعميل تصحيح الأخطاء فقط بمجرد حدوث حالة خطأ.
  • xdebug.remote_cookie_expire_time - يمكن استخدام هذا الإعداد لزيادة (أو تقليل) الوقت الذي تظل فيه جلسة التصحيح عن بُعد حية عبر ملف تعريف ارتباط الجلسة. الافتراضي هو 3600.
  • xdebug.remote_log - إذا تم تعيينه على قيمة ، فسيتم استخدامه كاسم ملف لملف يتم تسجيل جميع اتصالات مصحح الأخطاء عن بُعد فيه.
  • xdebug.var_display_max_depth - يتحكم في عدد المستويات المتداخلة لعناصر المصفوفة وخصائص الكائن عندما يتم عرض المتغيرات إما مع xdebug_var_dump () أو xdebug.show_local_vars أو من خلال تتبع الوظائف. الافتراضي هو 3.
  • xdebug.profiler_enable - تمكين منشئ ملفات التعريف Xdebug الذي يقوم بإنشاء ملفات في دليل إخراج ملف التعريف. الافتراضي هو 0.
  • xdebug.idekey - عناصر التحكم في أي مفتاح IDE Xdebug يجب أن يمرر إلى معالج مصحح الأخطاء DBGp. يعتمد الإعداد الافتراضي على إعدادات البيئة.

احفظ الملف وأعد تشغيل خادم Apache:

sudo service apache2 restart

Xdebug و PhpStorm

تحتاج أولاً إلى فتح PhpStorm وتحديد تشغيل> تحرير التكوين. هناك يجب عليك تحديد + (إضافة تكوين جديد) واختيار "PHP Remote Debug".

قم بتغيير اسم التكوين من "غير مسمى" إلى شيء آخر. لقد اخترت اسم "البرنامج التعليمي" لأسباب واضحة ؛) ثم تحقق من "اتصال تصحيح الأخطاء عن طريق مفتاح IDE".

حدد زر الخوادم (...) ثم حدد + (إضافة خادم جديد).

  • أعد تسمية الخادم الخاص بك إلى شيء أكثر راحة. لقد اخترت "localbackend1" في هذا المثال.
  • في حقل المضيف ، اكتب في مضيفك المحلي. اضبط المصحح على Xdebug.
  • حدد "استخدام تعيين المسار" وأشر إلى مجلد التطبيق الخاص بك.

انقر فوق تطبيق. ستتم إعادتك إلى النافذة السابقة حيث سترى أن مفتاح IDE قابل للتحرير ، والآن تحتاج إلى إدخال مفتاح. أنا دائما أضع "phpstorm" أو شيء مشابه.

ستلاحظ أن مفتاح IDE "phpstorm" موجود بالفعل في ملف 20-xdebug.ini:

xdebug.idekey=”phpstorm”

يجب عليك أيضًا تحديد مثيل واحد فقط لأنه سيمنعك من تشغيل أكثر من مثيل واحد من نفس المشروع.

انقر للتقديم و Voilà!

لقد انتهيت من الإعداد!

الاختبار والختام

أنت الآن كامل. يجب أن تشاهد تكوين البرنامج التعليمي الذي أنشأناه في الزاوية اليمنى العليا من PhpStorm.

يمكنك اختباره عن طريق تعيين نقطة توقف في مشروعك. انقر فوق الزر "خطأ" في نافذة التكوين الخاصة بالبرنامج التعليمي ثم قم بتشغيل التطبيق الخاص بك.

يجب أن يكون هذا كل شيء ، إذا كان كل شيء على ما يرام يجب أن تصل إلى نقطة التوقف.

وتذكر ، لا شيء يتفوق على الشعور برؤية قيم وقت التشغيل أثناء تصحيح الأخطاء.

شكرا لقرائتك! تحقق من المزيد من المقالات مثل هذا ، وغيرها من الأشياء الممتعة التي أقوم بها في ملفي الشخصي على Github: //github.com/GoranAviani