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

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

เมื่อติดตั้ง x-debug แล้วจะต้องศึกษาเรื่องการกำหนดค่าโปรแกรมที่เราใช้เขียนโปรแกรมอีกหน่อย เท่าที่ผมรู้ว่ามันซัพพอร์ต x-debug ณ ตอนนี้ก็คือ eclipse, netbean, phpstrom ส่วน dreamweaver ไม่ซัพพอร์ต

เอาละครับสิ่งแรกที่จะต้องทำเลยก็คือ ติดตั้งตัว Microsoft Visual C++ library ก่อน เป็นการเตรียมความพร้อมระบบปฎิบัติการ สามารถดาวน์โหลดได้ที่นี่ http://www.microsoft.com/en-us/download/details.aspx?id=5582 ติดตั้งซะนะครับไม่งั้นแล้วตอนเรียกใช้ x-debug มันจะฟ้องว่าหาไลบรารี่ตัวนี้ไม่เจอ

จากนั้นไปดาวน์โหลด x-debug จากเว็บไซต์ต้นตำหรับ ตอนแรกผมเห็น xampp มันใส่ x-debug มาให้แล้วด้วยแต่พอจะใช้งานจริง ตัวที่แนบมากับ xampp มันดันใช้ไม่ได้ เลยต้องดาวน์โหลดมาจากเว็บไซต์ใหม่

ไปที่ http://xdebug.org/download.php เลือกดาวน์โหลดตัว PHP 5.4 VC9 TS (32 bit) ถ้าท่านใช้ 64 bit ก็เลือกตัวที่เป็น 64 bit นะครับ บันทึกไฟล์ไว้ที่ C:\xampp\php\ext แทนที่ php_xdebug.dll ตัวเดิม ถ้าไม่อยากแทนที่ตัวเดิมก็ได้ไม่เป็นไร แต่ตอนที่ผมเสนอการคอนฟิกค่า ท่านต้องกำหนดชื่อไฟล์ dll ให้ถูกต้องเท่านั้นเอง

จากนั้นเปิดไฟล์ php.ini ขึ้นมา ไปยังส่วนท้ายของไฟล์ บรรทัดสุดท้ายเลย มันมีค่าคอนฟิกของ x-debug อยู่แล้ว ให้เปิดใช้งานโดยกำหนดดังนี้

[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
xdebug.profiler_output_dir = "C:\xampp\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.trace_output_dir = "C:\xampp\tmp"
xdebug.remote_port=9000

จุดที่จะต้องสังเกตเป็นพิเศษคือ เอาเครื่องหมายเซมิคอล่อนด้านหน้าออก และตรง xdebug.remote_enable = 1 ในของเดิมมันเป็น 0

บันทึกแล้ว restart apache ใหม่ ใช้คำสั่ง phpinfo() ตรวจดูความเรียบร้อย จะเห็น x-debug พร้อมใช้งาน

การใช้งานร่วมกับ netbean หรือ eclipse ให้อ่านเอาจากเว็บ select2web.com นี่แหละครับ ผมเขียนไว้แล้ว แต่ครั้งก่อนนั้นผมติดตั้ง x-debug เข้าไปใน appserv

ลองดูตัวอย่างที่ผมใช้งานจริง
x-debug

จะเห็นว่าผม breakpoint ให้มันหยุดการทำงานตรงบรรทัดที่ผมต้องการ แล้วก็ตรวจดูตัวแปร ซึ่งมันแสดงออกมาหมดครับ ตรงนี้ถ้าผมสงสัยว่าคำสั่ง SQL ผมผิด ผมสามารถก้อปปี้ค่าไปรันทดสอบใน phpmyadmin ต่อได้