Xdebug สามารถช่วยให้คุณเป็นนักพัฒนา WordPress ที่ดีขึ้นได้อย่างไร

เผยแพร่แล้ว: 2022-10-11

อย่างที่นักพัฒนาทุกคนสามารถยืนยันได้ว่าโค้ดไม่พร้อมสำหรับการผลิตหลังจากร่างแรก ส่วนสำคัญของกระบวนการพัฒนาคือการดีบัก — การลบหรือเปลี่ยนทุกส่วนของโค้ดที่ใช้งานไม่ได้

ส่วนขยาย Xdebug สำหรับ PHP เป็นวิธีที่ได้รับความนิยมในการรูทและทำลายจุดบกพร่องทั้งหมดในโค้ดของคุณ

ข้อดีอย่างหนึ่งของ Xdebug คือความยืดหยุ่น คุณจะสามารถค้นหา Xdebug เวอร์ชันที่ใส่ลงในเวิร์กโฟลว์ของคุณได้โดยไม่คำนึงถึงเฟรมเวิร์กหรือสภาพแวดล้อมการพัฒนาที่คุณต้องการ จากที่นั่น การจัดการกับเครื่องมือจะใช้เวลาไม่นาน

บทช่วยสอนนี้จะกล่าวถึง Xdebug ในเชิงลึก รวมถึงขั้นตอนการติดตั้ง การรวมเข้ากับการตั้งค่าของคุณ และการใช้งานทั่วไป

อันดับแรก ให้บริบทเพิ่มเติมแก่คุณว่า Xdebug คืออะไรและทำอะไร

แนะนำ Xdebug

Xdebug เป็นหนึ่งในส่วนขยายที่ได้รับความนิยมมากที่สุดในการดีบักโค้ด PHP ของคุณ คุณจะติดตั้งจากภายในสภาพแวดล้อมที่คุณเลือก และทำหน้าที่เป็น "ตัวดีบักขั้นตอน"

พื้นหลังเลเยอร์สีเขียวแสดงโลโก้ Xdebug พร้อมด้วย 'X' สีเขียว
โลโก้ Xdebug

กล่าวโดยสรุป วิธีนี้ช่วยให้คุณทำงานกับโค้ดทีละบรรทัดได้ ดังนั้นคุณจึงสามารถก้าวผ่านและดูว่าโค้ดทำงานและโต้ตอบกันอย่างไรภายในโปรแกรมของคุณ ตลอดจนตรวจสอบผลลัพธ์ของโค้ด จากที่นั่น คุณสามารถเปลี่ยนแปลงได้ตามที่เห็นสมควร

Xdebug สามารถทำได้มากขึ้นแม้ว่า:

  • คุณสามารถวิเคราะห์ประสิทธิภาพของโค้ดของคุณได้โดยใช้ชุดเมตริกและการแสดงภาพ
  • เมื่อคุณเรียกใช้การทดสอบหน่วย PHP คุณสามารถดูชุดโค้ดที่คุณเรียกใช้และดำเนินการได้
  • Xdebug มีความสามารถในการ "ติดตาม" ซึ่งจะเขียนทุกฟังก์ชันที่เรียกใช้ไปยังดิสก์ ซึ่งจะรวมถึงอาร์กิวเมนต์ การกำหนดค่าตัวแปร และค่าที่ส่งกลับ
  • Xdebug ยังทำการปรับปรุงการรายงานข้อผิดพลาด PHP มาตรฐานอีกด้วย เราจะอธิบายเพิ่มเติมในภายหลัง

ด้วยชุดคุณลักษณะ มีหลายวิธีในการใช้ Xdebug (และดีบักเกอร์ที่คล้ายกัน) ภายในเวิร์กโฟลว์ของคุณ เราจะพูดถึงสิ่งเหล่านี้ในหัวข้อถัดไป

การดีบักเป็นส่วนสำคัญของกระบวนการพัฒนา และ Xebug อยู่ที่นี่เพื่อทำให้กระบวนการนั้นง่ายขึ้น คลิกเพื่อทวีต

ทำไมคุณถึงต้องการใช้ Xdebug

นักพัฒนาหลายคนจะไม่มีเวิร์กโฟลว์การดีบักเฉพาะที่ใช้เครื่องมือและส่วนขยายของบุคคลที่สาม เนื่องจาก PHP มีการบันทึกข้อผิดพลาดเบื้องต้นด้วย คุณจะใช้คำสั่งเช่น error_log , var_dump และพิมพ์เพื่อดูผลลัพธ์ของตัวแปรและการเรียกใช้ฟังก์ชัน

ตัวอย่างเช่น มีตัวอย่างมากมายที่คุณสามารถนำไปใช้ใหม่สำหรับการพัฒนา WordPress — Stack Overflow มีมากมาย:

 function log_me($message) { if ( WP_DEBUG === true ) { if ( is_array($message) || is_object($message) ) { error_log( print_r($message, true) ); } else { error_log( $message ); } } }

อย่างไรก็ตาม มีข้อเสียที่สำคัญบางประการสำหรับแนวทางนี้:

  • ก่อนอื่นคุณต้องแน่ใจว่าคุณเปิดใช้งานบันทึกข้อผิดพลาดสำหรับแพลตฟอร์มที่คุณใช้งานอยู่ ในกรณีนี้ คุณจะต้องเปิดใช้ WP_DEBUG (เพิ่มเติมเกี่ยวกับเรื่องนี้ในไม่ช้า)
  • ตัวอย่างของการดีบัก "ดัมพ์" นี้มีขอบเขตสำหรับการตรวจสอบน้อยกว่าการดีบักแบบเป็นขั้นตอน ที่นี่ คุณสามารถส่งออกได้เฉพาะสิ่งที่คุณกำหนดเท่านั้น

จุดหลังต้องใช้ความพยายามอย่างมากโดยเฉพาะอย่างยิ่งถ้างานประจำวันของคุณไม่ใช่ผู้ดูแลระบบ ตัวอย่างเช่น หากคุณต้องการดีบักบล็อกโค้ด คุณอาจเพิ่มข้อมูลโค้ดตามตัวแปรที่คุณกำหนด อย่างไรก็ตาม อาจไม่ใช่สาเหตุของปัญหา หรือแม้แต่บ่งชี้ว่าเกิดอะไรขึ้น

แต่เครื่องมือเช่น Xdebug สามารถใช้เวทย์มนตร์เพื่อมอบขอบเขตที่มากขึ้นแทน:

  • คุณสามารถ "ทำลาย" รหัสของคุณ ณ จุดต่างๆ ระหว่างการดำเนินการเพื่อดูว่าเกิดอะไรขึ้นแบบเรียลไทม์
  • มีเมตริก การแสดงภาพ สาขา และอื่นๆ มากมายที่จะช่วยให้คุณทราบว่าโค้ดของคุณทำอะไรและตอบสนองอย่างไร
  • บางครั้ง คุณสามารถเปลี่ยนค่าได้ทันทีในระหว่างกระบวนการดีบัก สิ่งนี้ให้คุณค่ามหาศาล แม้แต่กับชุดโค้ดที่ทำงานได้ดี คุณสามารถทำการทดสอบหน่วยแบบแมนนวลได้ทุกเมื่อ
  • เนื่องจากคุณใช้เบรกพอยต์เพื่อมาร์กอัปพื้นที่ที่จะดีบัก คุณจึงไม่จำเป็นต้องทำงานกับข้อมูลโค้ดภายในโค้ดของคุณ วิธีนี้ช่วยให้โค้ดของคุณสะอาดขึ้นและลดจำนวนปัญหาในอนาคต

โดยรวมแล้ว การใช้เครื่องมือเช่น Xdebug เป็นการตัดสินใจเชิงรุกมากกว่าการตัดสินใจเชิงรับ คุณสามารถใช้การดีบักขั้นตอนเป็นส่วนหนึ่งของกระบวนการพัฒนาหลักได้ เช่นเดียวกับการนำการทดสอบหน่วยไปใช้เป็นส่วนหนึ่งของการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ (TDD)

วิธีเปิดการบันทึกข้อผิดพลาด PHP

แม้ว่าคุณจะสามารถดีบักโค้ดของคุณได้โดยไม่มีข้อผิดพลาด แต่มักจะเป็นการดีที่จะทราบว่าปัญหาเกิดขึ้นโดยไม่ได้เปิด Xdebug ไว้หรือไม่ นี่เป็นจุดเริ่มต้นสำหรับการสำรวจ ไม่จำเป็นอย่างยิ่ง แต่สามารถเป็นส่วนที่เป็นประโยชน์ในห่วงโซ่ของคุณได้

หากต้องการรายงานทุกข้อผิดพลาดที่เกิดขึ้น คุณจะต้องเพิ่มบรรทัดที่ด้านบนของไฟล์ PHP ที่เกี่ยวข้อง:

 error_reporting(E_ALL);

นี่คือคำสั่ง catch-all และคุณสามารถทำได้โดยใช้ ini_set :

 ini_set('error_reporting', E_ALL);

สิ่งนี้ทำให้คุณสามารถเปลี่ยนการตั้งค่าภายใน ไฟล์ php.ini ของคุณเป็นรายโปรเจ็กต์ แม้ว่าคุณจะสามารถเข้าไปในไฟล์นี้และทำการเปลี่ยนแปลงด้วยตนเองได้ ขอแนะนำให้ทำงานกับ ini_set เพื่อเปลี่ยนพารามิเตอร์เฉพาะจะดีกว่า:

 ini_set('display_errors', '1');

เมื่อคุณตั้งค่าการรายงานข้อผิดพลาดตามต้องการแล้ว คุณสามารถเริ่มทำงานกับ Xdebug ได้

วิธีใช้ Xdebug

ในสองสามส่วนถัดไป เราจะแสดงวิธีใช้ Xdebug รวมถึงขั้นตอนที่คุณต้องใช้ในการตั้งค่า แม้ว่าเราจะไม่สามารถครอบคลุมทุกแง่มุมของเครื่องมือได้ แต่คู่มือเริ่มต้นฉบับย่อนี้จะช่วยให้คุณดำเนินการได้อย่างรวดเร็ว

ก่อนอื่นคุณต้องติดตั้ง Xdebug เรามาดูวิธีการทำกัน

1. ติดตั้ง Xdebug สำหรับระบบปฏิบัติการ (OS) ของคุณ

เนื่องจาก Xdebug สามารถปรับให้เข้ากับการตั้งค่าจำนวนเท่าใดก็ได้ กระบวนการที่แน่นอนสำหรับแต่ละรายการจะแตกต่างกันเล็กน้อย ในระดับ OS มีความแตกต่างบางประการ:

  • Windows: นี่เป็นกระบวนการตั้งค่าที่ค่อนข้างซับซ้อนซึ่งเกี่ยวข้องกับการใช้ไฟล์ PHP ที่มีอยู่และวิซาร์ดการติดตั้ง จากนั้นดาวน์โหลดเวอร์ชันที่เหมาะสมสำหรับระบบของคุณ
  • Linux: วิธีการนี้น่าจะตรงไปตรงมาที่สุด: คุณสามารถใช้ตัวจัดการแพ็คเกจเพื่อติดตั้ง Xdebug หรือ PHP Extension Community Library (PECL)
  • Mac: วิธีนี้ก็ง่ายเช่นกัน เมื่อคุณติดตั้ง PECL แล้ว คุณสามารถเรียกใช้ pecl install xdebug จากอินสแตนซ์ Terminal ได้ คุณจะต้องมีเครื่องมือบรรทัดคำสั่ง XCode และ PHP ติดตั้งอยู่ในระบบของคุณ

อย่างไรก็ตาม ผู้ใช้ส่วนใหญ่ไม่ต้องการยึดติดกับอินสแตนซ์ระดับระบบของ Xdebug คุณจะต้องรวมเข้ากับสภาพแวดล้อมการพัฒนาของคุณเองแทน

2. ผสาน Xdebug เข้ากับสภาพแวดล้อมการพัฒนาของคุณ

เมื่อคุณติดตั้ง Xdebug สำหรับระบบปฏิบัติการของคุณแล้ว คุณควรเชื่อมต่อกับสภาพแวดล้อมของคุณ

มีระบบและเครื่องมือที่รองรับมากมายที่นี่ ซึ่งเราไม่สามารถเข้าไปได้ทั้งหมด ในภายหลัง เราจะเสนอคำแนะนำสำหรับทั้ง DevKinsta และ PhpStorm ถึงกระนั้นก็ตาม ยังมีสภาพแวดล้อมยอดนิยมอื่นๆ ให้เลือกมากมาย ด้านล่างนี้คือคำแนะนำยอดนิยมบางส่วนของเรา

เร่ร่อนเร่ร่อนที่แตกต่างกัน (VVV)

VVV เป็นหนึ่งในสภาพแวดล้อมที่มีชื่อบนเว็บไซต์ Make WordPress:

พื้นหลังสีน้ำเงินที่มีศิลปะ ASCII 8 บิตของโลโก้ Varying Vagrant Vagrants (
โลโก้ Varying Vagrant Vagrants

ข่าวดีก็คือ VVV มี Xdebug เวอร์ชันหนึ่งอยู่แล้ว แต่คุณต้องเปิดใช้งาน คุณสามารถทำได้โดยใช้ Secure Shell (SSH) ภายในหน้าต่างเทอร์มินัล:

 vagrant ssh -c "switch_php_debugmod xdebug"

แม้ว่าประสิทธิภาพจะไม่ค่อยดีนัก และคุณจะต้องเปิดตัวเลือกนี้อีกครั้งหากคุณจัดเตรียมไซต์ของคุณ

Laravel Valet

สำหรับผู้ใช้บางคน Laravel's Valet แสดงถึงสภาพแวดล้อมการพัฒนาเว็บที่เกือบจะสมบูรณ์แบบ ยิ่งไปกว่านั้น คุณสามารถรวม Xdebug เข้ากับมันได้

ในการดำเนินการนี้ คุณจะต้องสร้างไฟล์การกำหนดค่าสำหรับโปรแกรมแก้ไขข้อบกพร่อง คุณสามารถค้นหาเส้นทางของคุณเองได้โดยใช้ php --ini ที่บรรทัดคำสั่ง ซึ่งจะส่งคืนพาธไฟล์ที่แตกต่างกันสองสามรายการ:

หน้าต่าง Terminal แสดงรายการพาธของไฟล์คอนฟิกูเรชัน .ini PHP และเคอร์เซอร์พร้อมท์คำสั่งว่าง
Terminal แสดงรายการพาธไฟล์คอนฟิกูเรชัน

ถัดไป สร้างไฟล์ xdebug.ini ใหม่ที่พาธสำหรับไฟล์ .ini เพิ่มเติม ในตัวอย่างของเรา มันอยู่ที่ /opt/homebrew/etc/php/7.4/conf.d

เมื่อคุณเปิดไฟล์ใหม่นี้แล้ว ให้เปิดพาธไปยัง Loaded Configuration File ( ไฟล์ php.ini หลักของคุณ) เมื่อเปิดทั้งคู่ ให้เพิ่มสิ่งต่อไปนี้ที่ด้านล่าง:

  • php.ini: zend_extension="xdebug.so"
  • xdebug.ini: xdebug.mode=debug

เมื่อคุณบันทึกการเปลี่ยนแปลงแล้ว ให้เรียกใช้ valet restart จาก Terminal จากนั้นเพิ่ม phpinfo(); exit; phpinfo(); exit; ไปยังไฟล์ใดไฟล์หนึ่งในเว็บไซต์ของคุณ คุณจะต้องตรวจสอบว่าการทำงานนี้ทำงานผ่านการโหลดหน้าเว็บอย่างรวดเร็วภายในเบราว์เซอร์หรือไม่

ไฟล์ข้อมูล PHP ภายในเบราว์เซอร์ แสดงโลโก้ Xdebug และ
หน้าจอข้อมูล PHP

โปรดทราบว่าคุณอาจต้องรีสตาร์ท PHP โดยใช้ sudo brew services restart php และตรวจสอบว่าการติดตั้ง Xdebug ระบบของคุณถูกต้องโดยใช้ php --info | grep xdebug php --info | grep xdebug คุณจะสังเกตเห็นบรรทัดเฉพาะ Xdebug ภายในผลลัพธ์:

หน้าต่างเทอร์มินัลที่แสดงการตั้งค่าการกำหนดค่า Xdebug ต่างๆ จำนวนมาก (เช่น ชื่อเอาต์พุตและตัวแปรการแสดงผล) พรอมต์จะแสดง

จากที่นี่ คุณสามารถรวม Xdebug ไว้ในตัวแก้ไขการเข้ารหัสที่คุณเลือกได้

XAMPP

เช่นเดียวกับ Valet กระบวนการสำหรับ XAMPP มีบางส่วน อย่างไรก็ตาม เวอร์ชัน Windows และ macOS มีสองกระบวนการที่แตกต่างกัน

เริ่มต้นด้วยการติดตั้ง XAMPP จากนั้นเรียกใช้การตรวจสอบอย่างรวดเร็วเพื่อดูว่ามีไฟล์ php_xdebug.dll (Windows) หรือไฟล์ xdebug.so (macOS) อยู่ในระบบของคุณหรือไม่:

หน้าต่างเทอร์มินัลที่แสดงตัวอย่างข้อมูลเพื่อทดสอบว่าชั่วขณะหนึ่งมีอยู่หรือไม่ ถ้าเป็นเช่นนั้น Terminal จะส่งออก
หน้าต่าง Terminal แสดงการทดสอบไฟล์ XAMPP

หากมีไฟล์อยู่ คุณสามารถไปยังการกำหนดค่าได้ ไม่เช่นนั้น คุณจะต้องดาวน์โหลดไฟล์ไบนารีที่ถูกต้องสำหรับ Windows ก่อน ซึ่งเป็นไฟล์ 64 บิตสำหรับเวอร์ชัน PHP ที่คุณต้องการ หรือติดตั้งการพึ่งพาอื่นๆ อีกสองสามรายการหากคุณใช้ Mac

สำหรับ Windows เปลี่ยนชื่อไฟล์ DLL php_xdebug.dll จากนั้นย้ายไปยังพาธไฟล์ \xampp\php\ext ถัดไป เปิดไฟล์ \xampp\php\php.ini ในโปรแกรมแก้ไขโค้ดที่คุณต้องการ และเพิ่มสิ่งต่อไปนี้:

 output_buffering = Off

ที่ส่วน [XDebug] ให้เพิ่มสามบรรทัดถัดไป:

 zend_extension=xdebug xdebug.mode=debug xdebug.start_with_request=trigger

เมื่อคุณบันทึกการเปลี่ยนแปลงแล้ว ให้รีสตาร์ท Apache และทดสอบ Xdebug

สำหรับ Mac คุณจะต้องแน่ใจว่าคุณติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode โดยใช้ xcode-select --install ที่อินสแตนซ์เทอร์มินัล หลังจากนั้น มีสามแพ็คเกจที่คุณต้องการติดตั้งโดยใช้ Homebrew:

 brew install autoconf automake libtool

ในบางกรณี คุณจะต้องติดตั้ง XAMPP ใหม่เพื่อรับทั้งโปรแกรมหลักและ "ไฟล์สำหรับนักพัฒนา" คุณควรติดตั้งใหม่ได้เฉพาะไฟล์เหล่านี้เท่านั้น แต่คุณจะต้องสำรองข้อมูลการตั้งค่าที่มีอยู่ก่อน

จากนั้นไปที่การดาวน์โหลดสำหรับโฟลเดอร์ซอร์ส Xdebug ในระบบของคุณและแตกไฟล์ TGZ ภายในหน้าต่าง Terminal ให้ไปที่ไดเร็กทอรีนั้นและเรียกใช้สิ่งต่อไปนี้:

 phpize pecl install xdebug

โปรดทราบว่าคุณอาจต้องใช้ sudo ที่นี่เช่นกัน จากที่นี่ คุณสามารถแก้ไขไฟล์ XAMPP php.ini สำหรับการติดตั้ง macOS ส่วนใหญ่ คุณจะพบได้ที่ /Applications/XAMPP/xamppfiles/etc/php.ini ภายในไดเร็กทอรีนี้ คุณจะพบพาธไปยังไฟล์ xdebug.so ของคุณ — จดบันทึกและใช้แทนพาธของไฟล์พาธสำหรับข้อมูลโค้ดนี้:

 [xdebug] zend_extension=/path/to/xdebug.so xdebug.mode=develop,degug xdebug.start_with_request=yes

หากต้องการทดสอบว่าใช้งานได้หรือไม่ ให้สร้างไฟล์ xdebug_info.php ใหม่ภายในไดเร็กทอรี htdocs XAMPP หลัก ข้างในเพิ่มสิ่งต่อไปนี้:

 <?php xdebug_info();

…จากนั้นรีเฟรช Apache และทดสอบ Xdebug ในเบราว์เซอร์

การใช้ PhpStorm กับ Xdebug

เมื่อคุณติดตั้ง Xdebug ผ่านระบบปฏิบัติการและสภาพแวดล้อมการพัฒนา คุณจะต้องดูตัวดีบั๊กด้วย คุณจะทำสิ่งนี้ผ่านตัวแก้ไขโค้ดที่คุณเลือกหรือสภาพแวดล้อมการพัฒนาแบบรวม (IDE) เช่นเดียวกับสภาพแวดล้อมของคุณ มีตัวเลือกมากมายให้เลือก และแต่ละรายการอาจมีแนวทางที่แตกต่างกัน

ที่กล่าวว่านักพัฒนาหลายคนเลือกใช้ PhpStorm ของ JetBrains อันที่จริง PhpStorm เสนอ “ความช่วยเหลือเกี่ยวกับ WordPress” — และเป็นตัวเลือกยอดนิยมด้วยเหตุผลอื่นๆ มากมายเช่นกัน

อินเทอร์เฟซ PhpStorm พร้อมไดเร็กทอรีทรีสำหรับโครงการทางด้านซ้ายที่ใช้ข้อความสีขาว น้ำเงิน และเหลือง ด้านขวามือมีโค้ด PHP สำหรับปลั๊กอิน WordPress โดยใช้ข้อความสีส้ม สีม่วง สีเขียว และสีขาว
อินเทอร์เฟซ PhpStorm

เว็บไซต์ JetBrains มีคำแนะนำทั้งหมดเกี่ยวกับการเชื่อมต่อ Xdebug และ PhpStorm แต่เราจะตรวจสอบพวกเขาที่นี่

ขั้นแรก ไปที่หน้า ภาษาและกรอบงาน > PHP ภายในบานหน้าต่างการ ตั้งค่า ที่นี่ เปิดเมนูเคบับ More Items ถัดจากช่องดรอปดาวน์ CLI Interpreter :

หน้าจอการตั้งค่า PhpStorm บางส่วนซึ่งแสดงลิงก์ของหน้า (
การเลือกล่าม CLI ใน PhpStorm

ซึ่งจะแสดงรายละเอียดเพิ่มเติมเกี่ยวกับเวอร์ชัน PHP และล่ามของคุณ หากคุณคลิกจุดไข่ปลา รายการเพิ่มเติม ถัดจากตัวเลือก ไฟล์การกำหนดค่า คุณจะเห็นเส้นทางแบบเต็มสำหรับ ไฟล์ php.ini ของคุณ:

หน้าจอ PhpStorm More Items บางส่วนที่แสดงชื่อของการกำหนดค่า เส้นทางไปยังไฟล์ปฏิบัติการ PHP หมายเลขเวอร์ชัน PHP และดีบักเกอร์ปัจจุบัน และรายการไฟล์การกำหนดค่าสำหรับแง่มุมต่างๆ ของการติดตั้ง PHP
แก้ไขการกำหนดค่า PHP ภายใน PhpStorm

คุณจะทำงานกับไฟล์ PHP นี้เพื่อดำเนินการตั้งค่าต่อ

การทำงานภายในไฟล์ php.ini

งานแรกที่นี่คือการแก้ไขบรรทัดใดๆ ที่ส่งผลต่อวิธีที่ Xdebug จะทำงานกับ PhpStorm

ภายใน ไฟล์ php.ini ให้มองหาบรรทัดต่อไปนี้และลบออกหรือแสดงความคิดเห็น:

 zend_extension=<path_to_zend_debugger> zend_extension=<path_to_zend_optimizer>

บรรทัดเหล่านี้จะไม่ปรากฏในทุกกรณี ดังนั้นอย่าตื่นตระหนกหากคุณไม่เห็นบรรทัดเหล่านี้

ถัดไป เพิ่มสิ่งต่อไปนี้ในไฟล์:

 [xdebug] zend_extension="xdebug.so" xdebug.mode=debug xdebug.client_host=127.0.0.1 xdebug.client_port="<the port (9003 by default) to which Xdebug connects>"

มีบางสิ่งที่ควรทราบเกี่ยวกับชุดโค้ดนี้:

  • คุณอาจมีส่วน [xdebug] อยู่แล้ว ซึ่งในกรณีนี้ คุณสามารถละเว้นการกำหนดแรกได้
  • รายการ zend_extension อาจต้องการให้คุณเพิ่มเส้นทางแบบเต็มของ xdebug.so เพื่อเชื่อมต่อ
  • แม้ว่าจะดูเหมือนตัวยึดตำแหน่ง แต่พารามิเตอร์ xdebug.client_port คือวิธีที่คุณจะตั้งค่าภายในโค้ดของคุณ

เมื่อคุณเพิ่มสิ่งเหล่านี้แล้ว ให้บันทึกและปิดไฟล์ จากนั้นทดสอบเวอร์ชัน PHP จากบรรทัดคำสั่ง (โดยใช้ php --version ):

พื้นหลังเดสก์ท็อปไล่ระดับสีน้ำเงิน แดง และม่วง Big Sur แสดงหน้าต่างเทอร์มินัล macOS โดยจะแสดงคำสั่ง "php -version" พร้อมกับหมายเลขเวอร์ชัน PHP ประกาศเกี่ยวกับลิขสิทธิ์ และเวอร์ชันที่ติดตั้ง (พร้อมหมายเลขเวอร์ชัน) สำหรับ Zend Engine, Xdebug และ Zend OPcache
การทดสอบการติดตั้งปัจจุบันสำหรับ PHP และ Xdebug โดยใช้ macOS Terminal

หากคุณมี Xdebug เวอร์ชันที่ใช้งานได้ มันจะแสดงเป็นหนึ่งในส่วนขยาย PHP คุณยังสามารถเพิ่ม phpinfo(); ไปยังไฟล์ใหม่และทดสอบสิ่งนี้ในเบราว์เซอร์

นี่เป็นเพียงสิ่งที่คุณต้องทำเพื่อให้ Xdebug ทำงานเป็นดีบักเกอร์เริ่มต้นของคุณด้วย PhpStorm ขั้นตอนสุดท้ายก่อนใช้งานคือการติดตั้งส่วนขยายตัวช่วยเบราว์เซอร์

การติดตั้งส่วนขยายตัวช่วยเบราว์เซอร์

การเชื่อมต่อคีย์ขั้นสุดท้ายที่คุณต้องทำคือระหว่างเบราว์เซอร์ของคุณกับ PhpStorm ซึ่งทำได้โดยการเปิดใช้งานการดีบักขั้นตอนบนเซิร์ฟเวอร์ แม้ว่าคุณจะทำได้จากบรรทัดคำสั่งโดยใช้ค่า GET หรือ POST พิเศษ แต่การใช้ส่วนขยายจะง่ายกว่า

เราขอแนะนำให้ใช้ส่วนขยาย Xdebug Helper โดยเฉพาะ คุณสามารถติดตั้งบนเบราว์เซอร์ที่คุณเลือก:

  • Xdebug Helper สำหรับ Chrome/Chromium/Brave
  • Xdebug Helper สำหรับ Firefox
  • Xdebug Helper สำหรับ Safari

หากคุณต้องการสำรวจส่วนขยายอื่น ๆ เว็บไซต์ JetBrains มีตัวเลือกเพิ่มเติมสองสามตัวสำหรับเบราว์เซอร์ยอดนิยม

เมื่อคุณติดตั้งส่วนขยายเบราว์เซอร์ที่คุณเลือกแล้ว คุณไม่จำเป็นต้องปรับการตั้งค่าการกำหนดค่าใดๆ เพิ่มเติม จากที่นี่ คุณสามารถเริ่มใช้ Xdebug กับ PhpStorm ได้

ใช้ Xdebug

แม้ว่าเราจะใช้ PhpStorm ที่นี่ คุณจะเห็นเลย์เอาต์และส่วนต่อประสานที่คล้ายกันระหว่าง IDE ต่างๆ แม้ว่าจะมีความแตกต่างที่ชัดเจนอยู่บ้าง

มีแนวคิดสองสามข้อที่รวมกันเพื่อสร้างประสบการณ์การดีบักทั้งหมด:

  • เบรกพอยต์: นี่คือจุดที่ Xdebug จะหยุดเพื่อให้คุณตรวจสอบเอาต์พุต คุณสามารถตั้งค่าเหล่านี้ได้มากเท่าที่คุณต้องการ
  • การรับฟังสำหรับการเชื่อมต่อ: คุณสามารถเปิดหรือปิดสิ่งนี้ได้ แม้ว่านักพัฒนาส่วนใหญ่จะเปิดทิ้งไว้เสมอ
  • หน้าจอการดีบัก: เวลาส่วนใหญ่ของคุณจะถูกใช้ในอินเทอร์เฟซการดีบัก ซึ่งเป็นที่ที่คุณจะทำงานกับโค้ด ตัวแปร และพารามิเตอร์ต่างๆ

ขั้นตอนแรกคือเปิดใช้งานการฟัง — คุณจะไม่สามารถแก้ไขข้อบกพร่องใดๆ ได้หากไม่มีสิ่งนี้ ในการดำเนินการนี้ ให้คลิกที่ตัวเลือก Run > Start Listening for PHP Debug Connections ในแถบเครื่องมือ:

หน้าจออินเทอร์เฟซ PhpStorm บางส่วน แสดงไดเร็กทอรีทรีทางด้านซ้าย และแถบเครื่องมือของแอปพลิเคชัน เมนู Run เปิดขึ้น และปุ่ม
เปิดเมนู Run ภายใน PhpStorm

อีกทางเลือกหนึ่งคือ คุณสามารถคลิกที่ไอคอน "โทรศัพท์" ภายในแถบเครื่องมือของ PhpStorm:

ภาพระยะใกล้ของแถบเครื่องมือ PhpStorm ซึ่งแสดงตัวเลือกสำหรับการกำหนดค่าการทำงานปัจจุบัน ตัวเลือก Git ต่างๆ และไอคอนโทรศัพท์ Start Listening for PHP Debug Connections (พร้อมคำแนะนำเครื่องมือ)
ฟังการเชื่อมต่อดีบัก PHP โดยใช้ไอคอนโทรศัพท์ภายในแถบเครื่องมือ PhpStorm

ตัวเลือกใดตัวเลือกหนึ่งเหล่านี้จะเริ่มฟังสำหรับการเชื่อมต่อ

จากที่นี่ คุณสามารถเริ่มตั้งค่าเบรกพอยต์ภายในรางน้ำของตัวแก้ไขโค้ดได้ จุดสีแดงแสดงถึงเบรกพอยต์ ซึ่งคุณสามารถคลิกเพื่อเปิดใช้งาน:

ภาพระยะใกล้ของอินเทอร์เฟซ PhpStorm แสดงไดเรกทอรีต้นไม้ทางด้านซ้าย และแผงการเข้ารหัสทางด้านขวา ภายในรางน้ำของตัวแก้ไข มีจุดสีแดงพร้อมขีดสีขาวที่บรรทัดที่ 45, 50 และ 55 ซึ่งเป็นจุดพักสำหรับการดีบัก
จุดพักภายในรางน้ำของหน้าแก้ไข PhpStorm

เมื่อคุณต้องการดีบักโค้ดของคุณ วิธีที่ตรงไปตรงมาที่สุดคือเริ่มฟัง ตั้งค่าเบรกพอยต์ จากนั้นไปที่หน้าเฉพาะในเบราว์เซอร์ของคุณ ค้นหาไอคอนสำหรับส่วนขยายของคุณภายในเบราว์เซอร์ จากนั้นคลิกที่ไอคอนและเลือกตัวเลือก "แก้ไขข้อบกพร่อง":

เบราว์เซอร์ Mozilla Firefox แสดงพื้นหลังสีเขียว (และ
การเลือกตัวเลือก Debug ภายในแถบเครื่องมือของเบราว์เซอร์โดยใช้ส่วนขยายเฉพาะ

สิ่งนี้จะเปิดดีบักเกอร์ใน PhpStorm และแจ้งข่าวดีหรือข่าวร้าย:

หน้าจอ PhpStorm บางส่วน แสดงแผงดีบักเกอร์ที่เปิดอยู่ ด้านซ้ายแสดงจุดสั่งหยุดต่างๆ พร้อมด้วยชื่อไฟล์ หมายเลขบรรทัด และการอ้างอิงฟังก์ชัน ด้านขวาแสดงค่าของตัวแปรตลอดทั้งโค้ด พร้อมด้วยประเภทของค่า
การใช้ดีบักเกอร์ PhpStorm กับ Xdebug

หากคุณคลิกขวาที่ค่า แอตทริบิวต์ พารามิเตอร์ และตัวแปรต่างๆ คุณจะสามารถเข้าถึงเมนูบริบทเพิ่มเติมได้ สิ่งนี้ช่วยให้คุณมีขอบเขตเพิ่มเติมมากมายในการทดสอบและดีบักโค้ดของคุณ:

ส่วนหนึ่งของอินเทอร์เฟซ PhpStorm Debugger ที่มีรายการเบรกพอยต์ ชื่อไฟล์ หมายเลขบรรทัด และการอ้างอิงฟังก์ชันทางด้านซ้าย ด้านขวาแสดงค่าที่ไฮไลต์ไว้ภายในโค้ด โดยเปิดเมนูบริบทไว้ ในบรรดาตัวเลือกคือ "Set Value…" — วิธีกำหนดค่าใหม่ให้กับตัวแปรและดีบักโค้ด
ใช้เมนูบริบทคลิกขวาภายใน PhpStorm Debugger เพื่อตั้งค่าใหม่

ตัวอย่างเช่น คุณสามารถตั้งค่าต่างๆ สำหรับตัวแปรตามเส้นทางได้ นี่อาจเป็นความพยายามโดยเจตนาที่จะทำลายโค้ดของคุณและดูว่าเกิดอะไรขึ้น หรืออาจเป็นวิธีทดสอบโค้ดที่จำเป็นต้องแก้ไขอยู่แล้ว ไม่ว่าจะด้วยวิธีใด วิธีนี้จะช่วยให้คุณมีวิธีการที่ยอดเยี่ยมในการดีบักโค้ดของคุณโดยไม่ต้องแก้ไขก่อน

Kinsta ช่วยให้คุณดีบักเว็บไซต์ WordPress ของคุณได้อย่างไร

WordPress มาพร้อมกับชุดตัวเลือกการดีบักของตัวเองผ่าน WP_DEBUG และเครื่องมืออื่นๆ เช่น Query Monitor สิ่งเหล่านี้เปิดใช้งานโหมดที่คุณจะเริ่มเห็นข้อความแสดงข้อผิดพลาดที่ซ่อนไว้ก่อนหน้านี้ทั่วทั้งไซต์และแดชบอร์ดของคุณ จากตรงนั้น คุณสามารถเริ่มค้นหาว่าปัญหาคืออะไร

คุณยังสามารถบันทึกข้อความแสดงข้อผิดพลาดเหล่านั้นได้โดยใช้ WP_DEBUG_LOG ซึ่งให้วิธีการจัดทำเอกสารปัญหาเกี่ยวกับเว็บไซต์ของคุณ เราจะกล่าวถึงวิธีตั้งค่านี้ในบทความอื่นในบล็อก ตั้งค่าได้ง่ายผ่านแดชบอร์ด MyKinsta (และหน้าจอ Sites > Tools ):

แดชบอร์ด MyKinsta แสดงแถบด้านข้างสีม่วงทางซ้ายมือ และเมนูย่อยสีเทาเพิ่มเติม มีสองตัวเลือกในการสลับที่นี่ — เครื่องมือค้นหาและแทนที่ทางด้านขวา และเครื่องมือแก้ไขข้อบกพร่อง WordPress ทางด้านซ้าย
ตัวเลือกการดีบัก WordPress ภายในแดชบอร์ด MyKinsta

หากคุณจับคู่สิ่งนี้กับเครื่องมือสภาพแวดล้อมภายใน DevKinsta ฟรี คุณจะมีวิธีเปิดและปิดใช้งาน WP_DEBUG เพียงคลิกเดียวสำหรับแต่ละไซต์ที่คุณเปิด:

แดชบอร์ด DevKinsta สำหรับไซต์เดียว จะแสดงการตั้งค่าฐานข้อมูล รวมทั้งโฮสต์ พอร์ต ชื่อ และข้อมูลรับรองผู้ใช้ นอกจากนี้ยังมี
เปิดใช้งาน WP_DEBUG ภายในแผงควบคุมของ DevKinsta

ซึ่งหมายความว่าคุณสามารถตรวจจับข้อผิดพลาดบนไซต์ของคุณในระหว่างการพัฒนา และตรวจสอบให้แน่ใจว่าข้อผิดพลาดจะไม่ผ่านไปยังไซต์ที่ใช้งานจริงของคุณ โหมดเหล่านี้ปิดได้ง่ายเช่นกัน ซึ่งสำคัญต่อความปลอดภัยของทั้งไซต์และผู้ใช้

แผน Kinsta ทั้งหมดยังมาพร้อมกับเครื่องมือ Kinsta APM ในตัว ซึ่ง เป็นเครื่องมือตรวจสอบประสิทธิภาพที่ออกแบบเองของเราสำหรับไซต์ WordPress

คำสั่งโกงแผ่น

ก่อนสรุปบทความนี้ เราควรพูดถึงทางลัด

เช่นเดียวกับซอฟต์แวร์ชิ้นอื่น ๆ มีหลายวิธีในการนำทาง Xdebug (และ PhpStorm) โดยใช้แป้นพิมพ์เพียงอย่างเดียว ที่จริงแล้ว คุณสามารถใช้บรรทัดคำสั่งเพื่อดีบักสคริปต์ PHP ได้

เมื่อ Xdebug เริ่มทำงานแล้ว คุณสามารถใช้คำสั่งต่อไปนี้เพื่อไปยังส่วนต่างๆ ได้:

สั่งการ ทางลัด
ระบุพอร์ตที่จะฟัง (เช่น [9003] ) -p [value]
ตั้งค่าเบรกพอยต์บนบรรทัดที่ระบุสำหรับพาธไฟล์ที่กำหนด breakpoint_set -t line file:///<path> -n <line>
เรียกใช้สคริปต์ของคุณจนจบหรือจุดพักถัดไป run
ก้าวสู่บรรทัดปฏิบัติการถัดไป step_into
แสดงรายการตัวแปรและค่าในขอบเขตปัจจุบัน context_get
แสดงค่าของคุณสมบัติที่ระบุ property_get -n <property>

แม้ว่าโปรแกรมแก้ไขโค้ดเฉพาะของคุณจะมีปุ่มลัดเฉพาะของตัวเอง แต่จุดสนใจที่นี่คือ PhpStorm ดูตารางแป้นพิมพ์ลัดสำหรับการใช้ Xdebug กับ PhpStorm:

สั่งการ Windows macOS
ค้นหาการกระทำ Ctrl + Shift + A Shift + Cmd + A
เปิดโปรแกรมแก้ไขข้อบกพร่อง Shift + F9 Ctrl + D
สลับเบรกพอยต์ ควบคุม + F8 Cmd + F8
ก้าวเข้าสู่ F7 F7
ก้าวข้าม F8 F8
ดูเบรกพอยต์ Ctrl + Shift + F8 Shift + Cmd + F8
ดำเนินโครงการต่อ F9 F9
ประเมินนิพจน์ปัจจุบัน Alt + F8 ตัวเลือก + F8

โชคดีที่ไม่มีอะไรให้จดจำมากมายที่นี่ คุณต้องเปิดตัวดีบักเกอร์ ตั้งค่าเบรกพอยต์ต่อบรรทัด ฟังการเชื่อมต่อ และรันสคริปต์ของคุณ

อย่างไรก็ตาม หากคุณต้องการทางลัดสำหรับงานเฉพาะ คุณสามารถใช้คำสั่ง PhpStorm Find Action :

อินเทอร์เฟซ PhpStorm แสดงหน้าจอ Find Action มีตัวกรองการค้นหาที่หลากหลายสำหรับ All, Classes, Files, Symbols, Actions และ Git คำค้นหาคือ
การใช้เมนูค้นหาการดำเนินการภายใน PhpStorm

เมื่อคุณเริ่มพิมพ์ในพื้นที่นี้ คุณจะเห็นรายการคำสั่งแบบไดนามิกและทางลัดที่เกี่ยวข้อง คุณยังสามารถค้นหาเวอร์ชัน PDF ของแป้นพิมพ์ลัดทั้งหมดได้จากเมนู Help > Keyboard Shortcuts PDF

หากคุณต้องการดูทางลัดแบบเรียลไทม์มากขึ้นในขณะที่คุณใช้งานเมาส์ JetBrains มีปลั๊กอิน Key Promoter X:

หน้าต่างอินเทอร์เฟซ PhpStorm ที่แสดงตัวเลือกมากมายในการค้นหาไฟล์และโปรเจ็กต์ควบคู่ไปกับทางลัดที่เกี่ยวข้อง มีการแจ้งเตือน 2 รายการที่มุมล่างขวาด้วยรูปแบบของ
อินเทอร์เฟซ PhpStorm แสดงการแจ้งเตือนคีย์โปรโมเตอร์ X

เครื่องมือที่มีประโยชน์นี้จะแสดงการแจ้งเตือนการดำเนินการล่าสุดของคุณ พร้อมด้วยแป้นพิมพ์ลัดที่เกี่ยวข้อง เมื่อคุณเรียนรู้และใช้ทางลัดแล้ว คุณสามารถเลิกใช้ปลั๊กอินนี้และกู้คืนอสังหาริมทรัพย์อันมีค่านั้นไปยังหน้าจอของคุณได้

อย่างที่นักพัฒนาทุกคนสามารถยืนยันได้ว่าโค้ดไม่พร้อมสำหรับการผลิตหลังจากร่างแรก การดีบักเป็นกุญแจสำคัญ - ซึ่งเป็นที่มาของ Xdebug คลิกเพื่อทวีต

สรุป

แนวทางปฏิบัติในการดีบักมาไกลจากจุดเริ่มต้นที่ต่ำต้อย ตอนนี้มันครอบคลุมขอบเขตที่กว้างกว่าที่บรรพบุรุษของมันจะจินตนาการได้ ในการดำเนินการแก้ไขโค้ด PHP ของคุณอย่างละเอียดถี่ถ้วน คุณจะต้องใช้เครื่องมือที่มีความสามารถ มีส่วนขยายและเครื่องมือที่ยอดเยี่ยมมากมายให้เลือก แต่ Xdebug เป็น frontrunner ที่สามารถโต้แย้งได้

ดังที่เราได้เห็นแล้ว Xdebug สามารถปรับให้เข้ากับรสนิยมที่หลากหลายที่สุดในโปรแกรมแก้ไขโค้ด และเหมาะอย่างยิ่งเมื่อจับคู่กับ PhpStorm อย่างไรก็ตาม ไม่ว่าการตั้งค่าของคุณจะเป็นอย่างไร มักจะมี Xdebug เวอร์ชันที่เหมาะกับความต้องการของคุณ โดยรวมแล้วเป็นเครื่องมือที่ทรงพลัง ยืดหยุ่น และใช้งานง่าย

คุณคิดว่า Xdebug สมควรได้รับการยกย่องอย่างสูง หรือมีเครื่องมือแก้ไขจุดบกพร่องอื่นที่คุณต้องการหรือไม่ แจ้งให้เราทราบในส่วนความคิดเห็นด้านล่าง!