โปรแกรม debug php
หน้าแรก PHP MySQL เกร็ดความรู้ โปรแกรม debug php
การ 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:xamppphpext? ซึ่ง โฟล์เดอร์ในตัวอย่างบทความนี้เป็น php ที่ถูกติดตั้งจากโปรแกรม XMAPP 1.8.x หากว่าคุณไม่ได้ติดตั้งโปรแกรมจาก XMAPP คุณต้องทำการหาโฟล์เดอร์ที่ติดตั้ง php ในเครื่องของคุณเอง
หลังจากนั้นคุณต้องเข้าไปแก้ไขไฟล์ php.ini ซึ่งอยู่ในโฟล์เดอร์ C:xamppphpphp.ini

ค้นหาคำว่า [XDebug] แล้วแก้ไขข้อมูลตามตัวอย่างด้านล่างนี้
ลบ คอมม่า (;) ออกหน้าข้อความในบรรทัดด้านล่างนี้
- zend_extension = C:xamppphpextphp_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 ก็มีเพียงเท่านี้ซึ่งผมหวังว่ามีประโยชน์ไม่มากก็น้อยในการเขียนโปรแกรม หากใครมีปัญหา แนะนำหรือติชม สามารถแสดงความคิดเห็นได้ครับ
จาก: http://www.itoffside.com/debug-php-tool-netbeans-i...
ขึ้นไปด้านบน
