
การ Debug คือการตรวจสอบหาข้อผิดพลาดของโปรแกรมที่คุณเขียนเป็นเครื่องมือช่วยในการแก้ไขปัญหาและลดขั้นตอนการเขียนโปรแกรมลง ในการเขียนโปรแกรมของภาษา PHP เครื่องมือที่ใช้ Debug คือ xDebug และ NetBeans IDE โดยในบทความนี้จะอธิบายขั้นตอนการติดตั้งและใช้งาน NetBeans IDE และ xDebugบทความนี้ใช้ทรัพยากรของเครื่องดังต่อไปนี้
1. NetBeans IDE
2. PHP เวอร์ชั่น 5 ขึ้นไป (บทความการติดตั้ง PHP บน Windows Server)
3. Web Server ในตัวอย่างนี้ใช้ Apache ซึ่งเป็นชุดติดตั้งที่มาจาก XAMPP 1.8.x4. xDebug ซึ่งจะติดตั้งในบทความนี้
4. xDebug จะติดตั้งในบทความนี้
ขั้นตอนแรก คุณต้องติดตั้ง xDebug ก่อน โดยสามารถดาวน์โหลด dll ได้ที่เว็บไซต์ http://xdebug.org/download.php เมื่อเข้ามาแล้วให้คุณคลิกลิงค์ custom installation instructions. เพื่อโหลดไฟล์ติดตั้งแบบกำหนดเองตามเวอร์ชั่น PHP ที่ติดตั้ง (ตามรูปภาพด้านล่าง)
เปิดบราวเซอร์ขึ้นมาใหม่แล้วเช็คเวอร์ชั่น PHP โดยใช้คำสั่ง phpinfo(); แล้วคลุมดำหน้า phpinfo ทั้งหมด(สามารถกด CTRL+A) แล้ว Copy (สามารถกด CTRL+C) ตามรูปภาพด้านล่าง
เปิดหน้าจอ custom installation instructions. ในขั้นตอนแรกเพื่อที่จะนำข้อมูลที่คุณได้ Copy มาใส่ในช่อง Text Area นี้แล้วคลิกปุ่ม Analyse my phpinfo output ตามรูปภาพตัวอย่างด้านล่าง
ให้คลิกลิงค์ Download php_xdebug-2.2.3-5.4-vc9.dll เพื่อดาวน์โหลดไฟล์
– นำไฟล์ php_xdebug-2.2.3-5.4-vc9.dll ที่ดาวน์โหลด วางไว้ที่โฟล์เดอร์ C:\xampp\php\ext? ซึ่งโฟล์เดอร์ในตัวอย่างบทความนี้เป็น php ที่ถูกติดตั้งจากโปรแกรม XMAPP 1.8.x หากว่าคุณไม่ได้ติดตั้งโปรแกรมจาก XMAPP คุณต้องทำการหาโฟล์เดอร์ที่ติดตั้ง php ในเครื่องของคุณเอง
– หลังจากนั้นคุณต้องเข้าไปแก้ไขไฟล์ php.ini ซึ่งอยู่ในโฟล์เดอร์ C:\xampp\php\php.ini
– ค้นหาคำว่า “[XDebug]” แล้วแก้ไขข้อมูลตามตัวอย่างด้านล่างนี้
ลบ คอมม่า (;) ออกหน้าข้อความในบรรทัดด้านล่างนี้
- zend_extension = C:\xampp\php\ext\php_xdebug-2.2.3-5.4-vc9.dll (ค่า php_xdebug-2.2.3-5.4-vc9.dll ของคุณอาจจะไม่เหมือนในบทความ)
- xdebug.remote_host=localhost
- xdebug.remote_enable=1 (ค่าเดิมเป็น 0 ให้คุณเปลี่ยนเป็น 1)
- xdebug.remote_handler = dbgp
- xdebug.remote_port=9000
ตามรูปภาพด้านล่าง เมื่อแก้ไขแล้ว กด Save
– หลังจากที่คุณแก้ไขไฟล์ php.ini เรียบร้อยแล้วให้คุณ Restart Apache (หรือ Restart เครื่องคอมพิวเตอร์)
ขั้นตอนสอง ตั้งค่าและการใช้งาน NetBeans IDE ร่วมกับ xDebug
– เปิดโปรแกรม NetBeans IDE แล้วคลิกเมนู Tools — Options ตามลำดับ (ดูตัวอย่างจากรูปภาพด้านล่าง)
– ปรากฏหน้าต่าง Opitons ให้คุณเลือกเมนู PHP (1) — แล้วคลิกเลือกแท๊บ Debugging (2) — จากนั้นเปลี่ยนค่า Debugger Port เป็น 9000 (3) เมื่อแก้ไขเสร็จแล้วคลิกปุ่ม OK (4) ตามลำดับ (ตัวอย่างตามรูปภาพด้านล่าง)
– สร้าง Project ใหม่ชื่อว่า xdebug เพื่อทดสอบการใช้งาน xDebug บนโปรแกรม NetBeans IDE
– ให้คุณ Copy โค๊ดที่ผมได้เขียนไว้เป็นตัวอย่างด้านล่างนี้ นำไปวางไว้ในไฟล์ index.php เพื่อทดสอบการใช้งาน debug
<?php
$apple = 5;
$banana = 2;
echo “Price total is ” . sum_price($apple, $banana);
function sum_price($one, $two) {
$price_one = checkPrice($one);
$price_two = checkPrice($two);
$result = $price_one + $price_two;
return $result;
}function checkPrice($qty) {
$price = 1;
$result = 1;
for ($i = 0; $i < $qty; $i++) {
$result = $result * ($price + $i);
}
return $result;
}
?>
ตามรูปภาพด้านล่าง
– การใช้งาน Debug เพียงคุณต้องการให้โปรแกรมหยุดทำงานเพื่อตรวจสอบโค๊ด ก็เพียงคลิก Break Point ตรงหน้าตัวเลขบรรทัด เมื่อคุณคลิกแล้วจะเป็นสัญลักษณ์สีแดง ตามรูปภาพด้านล่าง (ในกรอบสีแดงสามารถคลิกเพื่อหยุดโปรแกรมเพื่อตรวจสอบได้)
– จากนั้นให้คุณคลิกปุ่ม Debug หรือพิมพ์คีย์บอร์ด CTRL + F5 (ตัวอย่างรูปภาพด้านล่าง)
– Run Debug แล้วโปรแกรม NetBeans IDE จะเด้งมาหน้าเว็บโหลดค้าง เหมือนรูปภาพด้านล่างนี้ แสดงว่าคุณทำ Debug ได้แล้ว
– ให้คุณกลับมาที่โปรแกรม NetBeans IDE ซึ่งตอนนี้ NetBeans IDE อยู่ในสถานะ Debug (เตรียมตัวตรวจสอบโค๊ด)
ความหมายของปุ่ม Debug ในโปรแกรม NetBeans IDE
ปุ่ม Continue หมายถึงให้โปรแกรมทำงานตามปกติเมื่อคุณกดปุ่มนี้ (กดปุ่มลัด F5)
ปุ่ม?Finish Session หมายถึงจบการ Debug โปรแกรมซึ่งหากคุณทำการ Debug โปรแกรมเสร็จแล้วควรคลิกปุ่มนี้ (กดปุ่มลัด Ship+F5)
? ปุ่ม Step infoหมายถึงการ Debug รายละเอียดทั้งหมดในฟังก์ชั่นทั้งหมด (และส่วนอื่นๆของโปรแกรม) (กดปุ่มลัด F7)
ปุ่ม Step Over หมายถึงการ Debug ข้ามรายละเอียดการทำงานในฟังก์ชั่น (กดปุ่มลัด F8)
ปุ่ม Step out หมายถึง การออกจากการ Debug ในฟังก์ชั่นการทำงานที่ทำอยู่ขณะนั้น (กดปุ่มลัด Ctrl+F7)
ปุ่ม Run to cursor หมายถึง การ Debug ในตำแหน่งที่ Cursor ชี้อยู่ขณะนั้น (กดปุ่มลัด F4)
ในบทความนี้แนะใช้การ Debug โดยกดปุ่ม F7 เพื่อดูรายละเอียดขั้นตอนการทำงานและคุณสามารถใช้เมาส์ Hover ตัวแปร PHP เพื่อดูค่าตัวแปรได้อีกด้วย
การ Debug Netbeans IDE นอกจากจะตรวจสอบแล้วยังสามารถแก้ไขประเภทตัวแปรและค่าตัวแปรได้ตามกรอบสีแดง
สำหรับบทความการใช้งาน NetBeans IDE ในการ Debug โปรแกรมภาษา PHP ก็มีเพียงเท่านี้ซึ่งผมหวังว่ามีประโยชน์ไม่มากก็น้อยในการเขียนโปรแกรม หากใครมีปัญหา แนะนำหรือติชม สามารถแสดงความคิดเห็นได้ครับ