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 |
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]Trus restar webservice apache lo. dan xdebug berhasil di attach ke server PHP lo deh :D
; 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
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:
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 |
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.
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.
terimakasih atas infonya
ReplyDeleteLampu service hp