إذا وجدت هذا الامتداد مفيدًا ، إذا كان يساعدك في حل مشاكلك وإذا كنت تقدر الدعم المقدم هنا ، ففكر في رعاية عملنا.
تثبيت الامتداد: اضغط على F1
، اكتب ext install php-debug
.
هذا الامتداد هو محول تصحيح بين VS Code و Xdebug بواسطة Derick Rethans. XDebug هو امتداد PHP (ملف .so
على Linux و .dll
على Windows) يجب تثبيته على الخادم الخاص بك.
تثبيت xDebug أنا أوصي بشدة بعمل ملف test.php
بسيط ، وضع phpinfo();
بيان في هناك ، ثم انسخ الإخراج ولصقه في معالج تثبيت XDEBUG. سوف يحللها ويمنحك تعليمات تثبيت مصممة لبيئتك. باختصار:
على Windows: قم بتنزيل DLL المسبق المناسبة لإصدار PHP الخاص بك ، والهندسة المعمارية (64/32 بت) ، وسلامة مؤشرات الترابط (TS/NTS) وإصدار Visual Studio مترجم ووضعه في مجلد امتداد PHP الخاص بك.
على Linux: إما قم بتنزيل الكود المصدري على أنه Tarball أو استنساخه باستخدام GIT ، ثم قم بتجميعه. أو معرفة ما إذا كان التوزيع الخاص بك يوفر بالفعل حزم بدين.
قم بتكوين PHP لاستخدام xDebug عن طريق إضافة zend_extension=path/to/xdebug
إلى php.ini. يظهر مسار php.ini في إخراج phpinfo()
تحت "ملف التكوين المحمّل".
تمكين تصحيح الأخطاء عن بُعد في php.ini
:
لـ xDebug v3.xx:
xdebug.mode = debugxdebug.start_with_request = نعم
لـ xDebug v2.xx:
xdebug.remote_enable = 1xdebug.remote_autostart = 1xdebug.remote_port = 9000
هناك طرق أخرى لإخبار xDebug بالاتصال بمصادق تصحيح عن بُعد ، مثل ملفات تعريف الارتباط أو معلمات الاستعلام أو ملحقات المتصفح. أوصي remote_autostart
(XDEBUG V2)/ start_with_request
(XDEBUG V3) لأنه "يعمل فقط". هناك أيضًا مجموعة متنوعة من الخيارات الأخرى ، مثل المنفذ ، يرجى الاطلاع على وثائق XDEBUG حول التصحيح عن بُعد لمزيد من المعلومات. يرجى ملاحظة أن منفذ XDebug الافتراضي تم تغييره بين XDebug V2 إلى V3 من 9000 إلى 9003.
إذا كنت تقوم بتطوير الويب ، فلا تنس إعادة تشغيل خادم الويب الخاص بك لإعادة تحميل الإعدادات.
تحقق من التثبيت الخاص بك عن طريق التحقق من إخراج phpinfo()
لقسم XDEBUG.
في مشروعك ، انتقل إلى مصحح الأخطاء وضرب أيقونة Little Gear واختر PHP . سيتم إنشاء تكوين إطلاق جديد لك بثلاث تكوينات:
استمع إلى xDebug ، سيبدأ هذا الإعداد ببساطة الاستماع إلى المنفذ المحدد (افتراضيًا 9003) لـ XDebug. إذا قمت بتكوين xDebug مثل الموصى بها أعلاه ، في كل مرة تقوم فيها بتقديم طلب مع متصفح إلى خادم الويب الخاص بك أو قم بتشغيل برنامج CLI Script XDebug الذي ستتصل به ويمكنك إيقاف نقاط التوقف ، والاستثناءات وما إلى ذلك.
إطلاق البرنامج النصي المفتوح حاليًا ، يعد هذا الإعداد مثالًا على تصحيح أخطاء CLI. سيتم إطلاق البرنامج النصي الذي تم افتتاحه حاليًا على أنه CLI ، ويُظهر جميع الإخراج stdout/stderr في وحدة تحكم التصحيح وإنهاء جلسة التصحيح بمجرد خروج البرنامج النصي.
قم بتشغيل خادم الويب المدمج في هذا التكوين يبدأ خادم الويب المدمج في PHP على منفذ عشوائي ويفتح المتصفح بتوجيه serverReadyAction
. المنفذ عشوائي (LocalHost: 0) ولكن يمكن تغييره إلى منفذ ثابت مطلوب (على سبيل المثال: LocalHost: 8080). إذا كانت هناك حاجة إلى برنامج نصي لجهاز التوجيه ، فأضفه مع توجيه program
. توجيهات PHP/XDEBUG إضافية تسبب تصحيح الأخطاء في كل صفحة تحميل.
هناك أيضًا تكوينات لتركيبات XDEBUG V2 (LEGACY).
يمكن العثور على مزيد من المعلومات العامة حول تصحيح الأخطاء مع VS Code على https://code.visualstudio.com/docs/editor/debugging.
ملاحظة: يمكنك حتى تصحيح البرنامج النصي دون
launch.json
. json. إذا لم يكن أي مجلد مفتوحًا ، وكان شريط حالة VS Code أرجوانيًا ، فسيبدأ الضغط علىF5
البرنامج النصي المفتوح باستخدام معلمات محددة XDEBUG3. إذا لم يكن القابل للتنفيذ PHP في المسار ، فيمكنك تزويدها بإعدادphp.debug.executablePath
. لكي يعمل تصحيح الأخطاء ، يجب تثبيت XDebug بشكل صحيح.
request
: دائمًا "launch"
hostname
: العنوان المراد ربطه عند الاستماع إلى xDebug (افتراضي: جميع اتصالات IPv6 إذا كان ذلك متاحًا ، وإلا لا يمكن دمج جميع اتصالات IPv4) أو مقبس المجال UNIX (بادئة مع unix://
) أو Windows Pipe ( ?pipename
) - ميناء
port
: المنفذ الذي يستمع إليه لـ XDebug (افتراضي: 9003
). إذا تم تعيين المنفذ على 0
يتم اختيار منفذ عشوائي بواسطة النظام ويتم استبدال العنصر النائب ${port}
بالمنفذ المختار في env
و runtimeArgs
.
stopOnEntry
: ما إذا كان لكسر في بداية البرنامج النصي (افتراضي: false
)
pathMappings
: قائمة بمسارات الخادم في رسم مسارات المصدر المحلي على جهازك ، انظر "مضيف عن بُعد التصحيح" أدناه
log
: ما إذا كان لتسجيل جميع الاتصالات بين VS Code والمحول إلى وحدة التحكم Debug. انظر استكشاف الأخطاء وإصلاحها إلى أسفل.
ignore
: مجموعة اختيارية من أنماط الكرة الأرضية التي يجب تجاهل الأخطاء من (على سبيل المثال **/vendor/**/*.php
)
ignoreExceptions
: مجموعة اختيارية لأسماء فئات الاستثناءات التي يجب تجاهلها (على سبيل المثال BaseException
، NS1Exception
، *Exception
أو **Exception*
)
skipFiles
: مجموعة من أنماط الكرة الأرضية ، للتخطي عند تصحيح الأخطاء. يُسمح بأنماط النجوم والنفيات ، على سبيل المثال ، **/vendor/**
أو !**/vendor/my-module/**
.
skipEntryPaths
: مجموعة من أنماط Glob ، للفصل فورًا وتجاهلها لتصحيح الأخطاء إذا كان نص الإدخال يتطابق مع (مثال **/ajax.php
).
maxConnections
: قبول هذا العدد فقط من جلسات التصحيح الموازي. سيتم إسقاط اتصالات إضافية وسيستمر تنفيذها دون تصحيح الأخطاء.
proxy
: إعدادات الوكيل DBGP
enable
: لتمكين تسجيل الوكيل إلى true
(الافتراضي هو "خطأ).
host
: عنوان الوكيل. يدعم اسم المضيف أو عنوان IP أو مقبس مجال UNIX (افتراضي: 127.0.0.1).
port
: المنفذ الذي سيتم فيه تسجيل المحول في الوكيل (الافتراضي: 9001
).
key
: مفتاح فريد يسمح للوكالة بمطابقة الطلبات مع المحرر الخاص بك (افتراضي: vsc
). يتم أخذ الافتراضي من إعدادات VSCode php.debug.idekey
.
timeout
: عدد المللي ثانية للانتظار قبل الاستسلام عن الاتصال بالوكالة (الافتراضي: 3000
).
allowMultipleSessions
: إذا كان على الوكيل توجيه جلسات/اتصالات متعددة في نفس الوقت أم لا (الافتراضي: true
).
xdebugSettings
: يتيح لك تجاوز إعدادات الأخطاء عن بُعد لـ XDEBUG لضبط XDEBUG لتلبية احتياجاتك. على سبيل المثال ، يمكنك اللعب مع max_children
و max_depth
لتغيير عدد أقصى عدد من الأطفال والكائنات التي يتم استردادها وعمق الحد الأقصى في هياكل مثل المصفوفات والكائنات. هذا يمكن أن يسرع مصحح الأخطاء على الآلات البطيئة. للحصول على قائمة كاملة بأسماء الميزات التي يمكن تعيينها ، يرجى الرجوع إلى وثائق XDEBUG.
max_children
: عدد أقصى عدد من الأطفال أو الكائنات لاسترداده في البداية
max_data
: أقصى قدر من البيانات المتغيرة لاستردادها في البداية.
max_depth
: العمق القصوى الذي قد يعوده محرك تصحيح الأخطاء عند إرسال صفائف أو تجزئة أو هياكل الكائن إلى IDE (يجب ألا تكون هناك حاجة لتغيير هذا حيث يتم استرداد العمق بشكل تدريجي ، يمكن أن تتسبب قيمة كبيرة في تعليق IDE).
show_hidden
: يمكن أن يتم تعيين هذه الميزة من قبل IDE إذا كانت ترغب في الحصول على معلومات داخلية أكثر تفصيلاً عن الخصائص (على سبيل المثال ، أعضاء من القطاع الخاص ، وما إلى ذلك) تعني الصفر أن الأعضاء المخفيين لا يتم عرضهم على IDE.
xdebugCloudToken
: بدلاً من الاستماع محليًا ، افتح اتصالًا والتسجيل مع XDebug Cloud وقبول جلسات تصحيح الأخطاء حول هذا الاتصال.
stream
: يسمح للتأثير على تدفقات DBGP. XDebug يدعم فقط stdout
انظر DBGP stdout
stdout
: إعادة توجيه دفق stdout: 0 (تعطيل) ، 1 (نسخة) ، 2 (إعادة التوجيه)
خيارات خاصة بتصحيح تصحيح CLI:
program
: مسار إلى البرنامج النصي الذي يجب إطلاقه
args
: تم نقل الحجج إلى البرنامج النصي
cwd
: دليل العمل الحالي لاستخدامه عند إطلاق البرنامج النصي
runtimeExecutable
: المسار إلى ثنائي PHP المستخدمة لإطلاق البرنامج النصي. بشكل افتراضي واحد على المسار.
runtimeArgs
: حجج إضافية لتمريرها إلى ثنائي PHP
externalConsole
: قم بتشغيل البرنامج النصي في نافذة وحدة تحكم خارجية بدلاً من وحدة التحكم في التصحيح (الافتراضي: false
)
env
: متغيرات البيئة للانتقال إلى البرنامج النصي
envFile
: مسار اختياري لملف يحتوي على تعريفات متغيرة للبيئة
نقاط توقف الخط
نقاط التوقف الشرطية
اضغط على نقاط توقف العد: يدعم الشروط مثل >=n
، ==n
و %n
نقاط توقف الوظيفة
خطوة ، خطوة ، خطوة
كسر عند الدخول
ابدأ مع التوقف عند الدخول (F10/F11)
كسر استثناءات وأخطاء / تحذيرات / إشعارات غير معلنة
طلبات متعددة موازية
آثار المكدس ، متغيرات النطاق ، superglobals ، الثوابت المحددة للمستخدم
المصفوفات والكائنات (بما في ذلك اسم الفئة والخصائص الخاصة والثابتة)
وحدة التحكم في التصحيح
الساعات
تعيين المتغيرات
تشغيل CLI
تشغيل دون تصحيح الأخطاء
تسجيل وكيل DBGP ودعم عدم التسجيل
دعم السحابة XDEBUG
لتصحيح تطبيق تشغيل على مضيف عن بُعد ، تحتاج إلى إخبار XDebug بالاتصال بـ IP مختلف عن localhost
. يمكن أن يتم ذلك إما عن طريق تعيين xdebug.client_host
إلى IP الخاص بك أو عن طريق تعيين xdebug.discover_client_host = 1
لجعل xDebug الاتصال دائمًا بالجهاز الذي قام بطلب الويب. هذا الأخير هو الإعداد الوحيد الذي يدعم العديد من المستخدمين الذين يقومون بتصحيح نفس الخادم و "يعمل فقط" لمشاريع الويب. مرة أخرى ، يرجى الاطلاع على وثائق XDEBUG حول الموضوع لمزيد من المعلومات.
لجعل VS Code Map تقوم الملفات الموجودة على الخادم بالملفات الصحيحة على الجهاز المحلي الخاص بك ، يجب عليك تعيين إعدادات pathMappings
في Launch.json. مثال:
// server -> محلي "pathmappings": {"/var/www/html": "$ {workspacefolder}/www" ، "/app": "$ {workspacefolder}/app"}
يرجى أيضًا ملاحظة أن تعيين أي من خيارات تصحيح الأخطاء في CLI لن يعمل مع تصحيح الأخطاء عن بُعد ، لأن البرنامج النصي يتم إطلاقه محليًا دائمًا. إذا كنت ترغب في تصحيح نص CLI على مضيف بعيد ، فأنت بحاجة إلى تشغيله يدويًا من سطر الأوامر.
يمكن لمصحح الأخطاء تسجيل نفسه في وكيل DBGP مع مفتاح IDE. سيتم توجيه الوكيل بعد ذلك إلى IDE فقط جلسات DBGP التي تحتوي على مفتاح IDE المحدد. هذا مفيد في بيئة متعددة حيث لا يمكن للمطورين استخدام نفس منفذ DBGP في نفس الوقت. هناك حاجة إلى الإعداد الدقيق الذي يحتوي على طلبات إلى خادم الويب يحتوي على مفتاح IDE المطابق.
التنفيذ الرسمي لـ DBGPPROXY.
يوصى أيضًا بامتداد مستعرض المساعد XDEBUG . هناك يمكن تكوين مفتاح IDE جانب الطلب بسهولة.
اطرح سؤالًا على Stackoverflow
إذا كنت تعتقد أنك وجدت خطأ ، افتح مشكلة
تأكد من أن لديك أحدث إصدار من هذا الامتداد وتثبيت xDebug
جرب ملف PHP بسيط لإعادة إنشاء المشكلة ، على سبيل المثال من TestProject
تعيين "log": true
في Launch.json ومراقبة لوحة وحدة التحكم Debug
في php.ini الخاص بك ، اضبط xdebug.log = /path/to/logfile
(تأكد من أن خادم الويب الخاص بك لديه أذونات الكتابة إلى الملف)
الوصول إلى TwitterDamjancvetko
للاختراق على هذا المحول ، استنساخ المستودع وفتحه في الكود VS. تحتاج إلى NodeJs مع تثبيت NPM وفي طريقك. كما ينبغي تثبيت PHP و XDEBUG الحديثة وفي طريقك.
قم بتثبيت حزم NPM عن طريق تشغيل npm install
على سطر الأوامر في دليل المشروع أو تحديد Terminal / Run Task... / npm / npm: install
في قائمة VS Code.
قم بتشغيل عملية Build / Watch إما عن طريق تشغيل npm run watch
على سطر الأوامر في دليل المشروع أو تحديد Terminal / Run Build Task...
في قائمة VS Code.
ابدأ محول التصحيح عن طريق فتح شريط الجري والتصحيح ، واختيار تكوين Debug adapter
والنقر على سهم التشغيل الأخضر (أو ضرب F5
). سيتم تشغيل المحول المترجم في "وضع الخادم" والاستماع إلى منفذ TCP 4711.
قم بتشغيل مثيل منفصل لـ VS Code ، يسمى "مضيف تطوير الامتداد" عن طريق تشغيل code testproject --extensionDevelopmentPath=.
في سطر الأوامر في دليل المشروع أو تحديد Launch Extension
وتكوين التصحيح والضغط على سهم التشغيل الأخضر. اختصار آخر هو تشغيل npm run start
. يمكنك أيضًا تشغيل بناء المطلعين من VS Code لاختبار الميزات الأحدث.
في مثيل "مضيف تطوير الامتداد" مفتوح .vscode/launch.json
و Uncomment خط تكوين debugServer
. قم بتشغيل جلسة تصحيح PHP عن طريق تحديد التكوين المطلوب وضرب F5
. يمكنك الآن تصحيح TestProject كما هو محدد أعلاه وتعيين نقاط التوقف داخل مثيل VS Code الأول لتتخطى رمز المحول.
يمكن العثور على المزيد حول امتدادات الاختبار على https://code.visualstudio.com/api/working-with-extensions/testing-extense.
تتم كتابة الاختبارات باستخدام Mocha ويمكن تشغيلها مع npm test
أو من Terminal / Run Task... / npm: test
. عند إرسال العلاقات العامة ، سيتم إجراء الاختبارات في CI على Linux و MacOs و Windows مقابل إصدارات PHP و XDEBUG المتعددة.
قبل إرسال PR أيضًا ، قم بتشغيل npm run lint
أو Terminal / Run Tasks... / npm: lint
.