Debugging merupakan proses yang mau-nggak-mau harus dijalani tiap kali membuat program. Ada dua garis besar metode yang bisa dilakukan:
- Nge-print variable dengan code
- Menggunakan tools debugger dengan IDE (Integrated Development Environment)
Cara pertama yaitu dengan menambahkan code var_dump($var);. Dengan cara ini, isi variable $var akan terlihat di browser. Makin banyak variable yang ingin diperiksa, makin banyak pula var_dump($var) yang harus ditambahkan sehingga code semakin kotor dan berantakan. Cara ini sering juga disebut dengan "tebar ranjau" :D
Cara tebar ranjau ini makin rumit kalau kita tidak tahu variable mana dan pada kondisi apa bug muncul (misalnya dalam kasus for loop), maka metode print variable dengan var_dump($var) ini menjadi tidak efektif. Walaupun demikian, metode ini sering dipakai untuk quick n dirt debug, pada kondisi-kondisi yang simple, dan biasanya banyak dipakai oleh newbie :D.
Cara Debugging ToolsCara debugging php menggunakan tools adalah dengan memakai XDebug. Untuk pengguna Unix/Linux bisa ikuti langkah disini http://devzone.zend.com/1120/introducing-xdebug/. Untuk pengguna Windows yang memakai XAMPP sebagai webserver-nya, cukup ikuti langkah berikut:
- Aktifasi XDebug
- Restart Apache service
- Cek apakah XDebug sudah terinstall atau belum
Buka "C:/xampp/php/php.ini", pada [XDebug], uncomment zend_extension dan tambahkan beberapa setting seperti line dibawah ini:
[XDebug]
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.idekey=netbeans-xdebug
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_mode=req
xdebug_break();
Buka XAMPP Control Panel, stop Apache, lalu start kembali.
Buka http://localhost/xampp/phpinfo.php, pastikan XDebug sudah terinstall.
Bonus: setelah XDebug terinstall, output dari var_dump($var) akan berubah menjadi lebih readable. Perhatikan perbedaan berikut ini:
XDebug tidak diaktifkanXDebug diaktifkan
XDebug sudah terinstall, tinggal install Debugging tools (IDE)-nya. Untuk PHP saya lebih suka pakai Netbeans, yang lain mungkin lebih suka Eclipse, pilihan saja. Untuk netbeans (versi 7.1 keatas) by default sudah suppport XDebug. Break point pada line yang ingin didebug, lalu klik Debug > Debug Project (atau klik icon pada toolbar) untuk mendebug aplikasi PHP. Sekarang kita bisa lihat isi variable PHP tanpa harus menambahkan (dan mendelete lagi) var_dump($var);.
Pada contoh dibawah ini, kita bisa periksa isi variable $data tanpa harus menambahkan code var_dump($data);
By default Netbeans PHP akan berhenti di line pertama ketika di debug. Untuk mengubah settingan ini masuk ke Tools > Option, pilih PHP lalu pilih tab Debugging. Uncheck pada pilihan "Stop at first line".
Selamat mencoba :D (ya2n)