WHAT'S NEW?
Loading...

Cara mudah debug PHP XAMPP pake notepad++

Biasanya gw kalo debug PHP tuh pake output variabel pake echo atau print_r gitu, cuma masalahnya kita harus tau dulu file php mana yg bikin eror, nah kali ini ada cara gampang buat debug aplikasi PHP dengan XDEBUG yg bakalan memudahkan proses trace issue karena kita bisa masuk kedalam proses PHP langkah demi langkah, bahkan bisa masuk kedalam prosedur fungsi atau masuk ke dalam include file php nya.
Berikut ini cara yg gw lakukan dalam mendebug php pake xdebug dengan IDE favorit Notepad++. hehe.. Oke kita mulai yaa.

1. Mengetahui versi PHP lo dengan phpinfo().
Di tutorial ini gw pake web server lokal XAMPP versi Portabel dengan port khusu 8080, tapi secara umum langkah ini bisa di terapkan di web server apache lain kayak WAMP, atau EasyPHP.
Kalo lo pake XAMPP sih gampang tinggal akses aja root XAMPP nya, trus klik phpinfo()

XAMPP phpinfo

Kalo diliat di atas gw pake PHP versi 5.4.7, nah di dalam halaman phpinfo itu gw blok semua halaman nya dengan tombol ctrl+A ajah, kenapa? untuk analisa xdebug wizard di langkah 2.

2. Menggunakan bantuan Xdebug wizard
paste phpinfo lo disini

Langkah berikutnya, lo harus download versi xdebug yg sesuai dengan versi PHP server lo. Cuma kalo ga mau ribet, mending pake wizard ajah, lo ga perlu milih sendiri versi xdebug, tinggal copy-paste informasi phpinfo seperti langkah 1 trus paste ajah di form wizard, dan simsalabim... lo udah tinggal download versi xdebug yg sesuai dengan web server apache lo. dan lagi di tulisin lagi file tersebut harus lo taro di folder mana :) asik kan.. langsung cekidot di alamat ==> http://xdebug.org/wizard.php

hasil analisa xdebug wizard

3. Update file PHP.INI
Setelah lo download file xdebug dll nya lo paste lah itu di dalam folder webserver/php/ext 
trus edit file php.ini dengan kode berikut:
[XDebug]
; Sesuaikan lokasi webserver folder debug lo
zend_extension = \xampp-portable\php\ext\php_xdebug-2.3.2-5.4-vc9.dll
xdebug.profiler_append = 0
xdebug.profiler_enable = 1
xdebug.profiler_enable_trigger = 0
; Sesuaikan lokasi webserver folder debug lo
xdebug.profiler_output_dir = "\xampp-portable\tmp"
xdebug.profiler_output_name = "cachegrind.out.%t-%s"
xdebug.remote_enable = 1
xdebug.remote_handler = dbgp
xdebug.remote_host = 127.0.0.1
; port buat debug nya 9000
xdebug.remote_port=9000
; Sesuaikan lokasi webserver folder debug lo
xdebug.trace_output_dir = "\xampp-portable\tmp"
xdebug.extended_info=1
xdebug.idekey=xdebug
xdebug.show_exception_trace=0
xdebug.show_local_vars=9
xdebug.show_mem_delta=0
xdebug.trace_format=0
Trus restar webservice apache lo. dan xdebug berhasil di attach ke server PHP lo deh :D

4. Plugin debug buat notepad++
Siiip kali ini setelah PHP xdebug berhasil terpasang di webserver lo, sebelum bisa melakukan tracing debug php, ada yg harus di upgrade dari editor NPP ini, kita perlu yg namanya plugin DBGP, silahkan download dulu disini ==> http://sourceforge.net/projects/npp-plugins/files/DBGP%20Plugin/
Kelar download, hasil extractan dll nya di taro di folder instalasi NPP nya, kalo gw sih ada di C:\Program Files (x86)\Notepad++\plugins, restart deh itu notepadnya, sampe menu plugin seperti gambar di bawah muncul



5. Konfigurasi DBGp nya
Masuk ke menu Plugins -> DBGp ->Debugger, trus seting DBG configuration seperti berikut ini:

Remote Server IP : karena localhost jadi kita isikan 127.0.0.1,
Ide key : isi kan sesuai setingan di php.ini tadi
Remote path: lokasi folder webservernya, kalo xampp "htdocs" webserver yg laen kadang namanya "www"

6. Tambahkan breakpoint
Sampai dengan tahap ini, lo udah bisa melakukan debug PHP bro, cuma untuk mengintercept, alias mencegat eksekusi proses PHP, lo mesti nambahin breakpoint, gunanya buat nandain "Oke dari sini kita mulai telusuri". masuk ke Plugins -> DBGp ->Debugger
Trus kalo liat bunderan merah, lo klik ajah sampe di editor NPP nya muncul bunderan merah juga
Tambah breakpoint
6. Memulai debug
Lanjutkan dengan buka web localhost nya.. akses ke halaman yg di tuju, dan load page dengan tambahan parameter ?XDEBUG_SESSION_START=session_name. session name sih bisa apa ajah, contohnya http://localhost:8080/fachrul/index.php?XDEBUG_SESSION_START=testgan
Begitu kita click, maka aplikasi notepad nya malah jadi kedap-kedip karena proses load page PHP lagi mulai debug sekarang.
Di samping kiri bunderan merah tadi kita bisa liat ada tombol alur debug seperti 
step into : untuk masuk ke dalam prosedur/include file php
step over : melanjutkan proses tanpa masuk kedalam prosedur
step out : keluar dari dalam produr / proses debug, biasanya setelah step into.
nah kita bisa analisa nih si skrip PHP yg kita buat alurnya kayak gimana, kita bisa trace kenapa dia ga masuk kondisi disitu, atau kenapa nilainya berubah jadi itu.
Untuk mengetahui nilai dari variabel yg ditampung, kita bisa menggunakan fungsi waches variabel seperti di bawah ini, nanti hasil nya bisa muncul di bawahnya


Selesai deh itu, gampang kan caranya. :)
Itu baru ngedebug di notepad ya, gw juga udah coba debug di sublime text, bisa juga loh, tapi dengan instal package debug dlu, cuma secara tampilan lebih enak di baca kalo pake notepad++.
Apalagi kalo ngedebug PHP pake dreamwaver atau IDE laen kayak, netbeans, aptana, eclipe, atau komodo pasti tampilan debugnya lebih rapih sih, cuma belum nyoba ajah gw hehe.


0 comments:

Post a Comment