Debug PHP ด้วยเครื่องมือ NetBeans IDE และ xDebug

Share Button

การ 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 ที่ติดตั้ง (ตามรูปภาพด้านล่าง)

xDebug-01

 

เปิดบราวเซอร์ขึ้นมาใหม่แล้วเช็คเวอร์ชั่น PHP โดยใช้คำสั่ง phpinfo(); แล้วคลุมดำหน้า phpinfo ทั้งหมด(สามารถกด CTRL+A) แล้ว Copy (สามารถกด CTRL+C) ตามรูปภาพด้านล่าง
xDebug-02

 

เปิดหน้าจอ custom installation instructions. ในขั้นตอนแรกเพื่อที่จะนำข้อมูลที่คุณได้ Copy มาใส่ในช่อง Text Area นี้แล้วคลิกปุ่ม Analyse my phpinfo output ตามรูปภาพตัวอย่างด้านล่าง
xDebug-03

 

ให้คลิกลิงค์ Download php_xdebug-2.2.3-5.4-vc9.dll เพื่อดาวน์โหลดไฟล์
xDebug-04

 

– นำไฟล์ 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-05

– ค้นหาคำว่า “[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
xDebug-06

 

– หลังจากที่คุณแก้ไขไฟล์ php.ini เรียบร้อยแล้วให้คุณ Restart Apache (หรือ Restart เครื่องคอมพิวเตอร์)

ขั้นตอนสอง ตั้งค่าและการใช้งาน NetBeans IDE ร่วมกับ xDebug

– เปิดโปรแกรม NetBeans IDE แล้วคลิกเมนู Tools — Options ตามลำดับ (ดูตัวอย่างจากรูปภาพด้านล่าง)
xDebug-07

 

– ปรากฏหน้าต่าง Opitons ให้คุณเลือกเมนู PHP (1) — แล้วคลิกเลือกแท๊บ Debugging (2) — จากนั้นเปลี่ยนค่า Debugger Port เป็น 9000 (3) เมื่อแก้ไขเสร็จแล้วคลิกปุ่ม OK (4) ตามลำดับ (ตัวอย่างตามรูปภาพด้านล่าง)

xDebug-08

 

สร้าง Project ใหม่ชื่อว่า xdebug เพื่อทดสอบการใช้งาน xDebug บนโปรแกรม NetBeans IDE

xDebug-09

 

– ให้คุณ 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;
}
?>

ตามรูปภาพด้านล่าง

xDebug-10

 

– การใช้งาน Debug เพียงคุณต้องการให้โปรแกรมหยุดทำงานเพื่อตรวจสอบโค๊ด ก็เพียงคลิก Break Point ตรงหน้าตัวเลขบรรทัด เมื่อคุณคลิกแล้วจะเป็นสัญลักษณ์สีแดง ตามรูปภาพด้านล่าง (ในกรอบสีแดงสามารถคลิกเพื่อหยุดโปรแกรมเพื่อตรวจสอบได้)
xDebug-12

– จากนั้นให้คุณคลิกปุ่ม Debug หรือพิมพ์คีย์บอร์ด CTRL + F5 (ตัวอย่างรูปภาพด้านล่าง)
xDebug-11

 

– Run Debug แล้วโปรแกรม NetBeans IDE จะเด้งมาหน้าเว็บโหลดค้าง เหมือนรูปภาพด้านล่างนี้ แสดงว่าคุณทำ Debug ได้แล้ว
xDebug-13

 

– ให้คุณกลับมาที่โปรแกรม NetBeans IDE ซึ่งตอนนี้ NetBeans IDE อยู่ในสถานะ Debug (เตรียมตัวตรวจสอบโค๊ด)
xDebug-14

 

ความหมายของปุ่ม Debug ในโปรแกรม NetBeans IDE
00-continue ปุ่ม Continue หมายถึงให้โปรแกรมทำงานตามปกติเมื่อคุณกดปุ่มนี้ (กดปุ่มลัด F5)

00-stop ปุ่ม?Finish Session หมายถึงจบการ Debug โปรแกรมซึ่งหากคุณทำการ Debug โปรแกรมเสร็จแล้วควรคลิกปุ่มนี้ (กดปุ่มลัด Ship+F5)

00-step? ปุ่ม Step infoหมายถึงการ Debug รายละเอียดทั้งหมดในฟังก์ชั่นทั้งหมด (และส่วนอื่นๆของโปรแกรม) (กดปุ่มลัด F7)

00-over-step ปุ่ม Step Over หมายถึงการ Debug ข้ามรายละเอียดการทำงานในฟังก์ชั่น (กดปุ่มลัด F8)

00-out-step ปุ่ม Step out หมายถึง การออกจากการ Debug ในฟังก์ชั่นการทำงานที่ทำอยู่ขณะนั้น (กดปุ่มลัด Ctrl+F7)

00-excute ปุ่ม Run to cursor หมายถึง การ Debug ในตำแหน่งที่ Cursor ชี้อยู่ขณะนั้น (กดปุ่มลัด F4)

 

ในบทความนี้แนะใช้การ Debug โดยกดปุ่ม F7 เพื่อดูรายละเอียดขั้นตอนการทำงานและคุณสามารถใช้เมาส์ Hover ตัวแปร PHP เพื่อดูค่าตัวแปรได้อีกด้วย
xDebug-15

 

การ Debug Netbeans IDE นอกจากจะตรวจสอบแล้วยังสามารถแก้ไขประเภทตัวแปรและค่าตัวแปรได้ตามกรอบสีแดง
xDebug-16

 

สำหรับบทความการใช้งาน NetBeans IDE ในการ Debug โปรแกรมภาษา PHP ก็มีเพียงเท่านี้ซึ่งผมหวังว่ามีประโยชน์ไม่มากก็น้อยในการเขียนโปรแกรม หากใครมีปัญหา แนะนำหรือติชม สามารถแสดงความคิดเห็นได้ครับ

benext About benext
โปรแกรมเมอร์ ติดต่อ : itoffside@hotmail.com

Share Button

Published by

benext

โปรแกรมเมอร์ ติดต่อ : itoffside@hotmail.com

Leave a Reply

Your email address will not be published. Required fields are marked *