Cara menggunakan debug php

Indonesian [Bahasa Indonesia] translation by Andy Nur [you can also view the original English article]

Agenda Kita

  1. Pengantar topik.
  2. Mengunduh dan menginstal Xdebug di komputer lokal Anda [Mac OS X 10.6.6+, MAMP 2.1.1].
  3. Mengintegrasikan dengan PhpStorm.
  4. Praktek debugging

Apa Yang Akan Kamu Butuhkan

  • Mac yang menjalankan Mac OS X 10.6.6+.
    • Jika kamu berada di 10.8.X, kamu mungkin perlu menginstal XQuartz saat Apple menghapus X11.
    • Jika kamu menggunakan Windows, keseluruhan proses agak mudah, cukup tekan Google untuk lebih jelasnya.
  • Apple Xcode 4.6 [gratis di Mac App Store].
    • Tool Command Line.
  • Homebrew.
  • Sebuah aplikasi terminal pilihanmu.
  • PhpStorm 5+ [banyak IDE lainnya juga akan bekerja].

Apa itu Xdebug?

Nah, secara teknis, Xdebug merupakan perpanjangan bagi PHP untuk membuat hidupmu lebih mudah saat melakukan debug kode-mu. Saat ini, kamu mungkin terbiasa melakukan debug kode-mu dengan berbagai solusi sederhana lainnya. Ini termasuk menggunakan pernyataan echo di keadaan yang berbeda dalam programmu untuk mengetahui apakah aplikasimu melewati suatu kondisi atau untuk mendapatkan nilai dari variabel tertentu. Selanjutnya, kamu mungkin sering menggunakan fungsi seperti var_dump, print_r atau lainnya untuk memeriksa objek dan array.

Apa yang sering saya jumpai adalah sedikit fungsi helper, seperti contoh ini:

function dump[$value] {
    echo ‘
';
    var_dump[$value];
    echo ‘
'; }

Sebenarnya, saya biasa melakukan ini juga, untuk waktu yang sangat lama sebenarnya.

Sebenarnya, saya biasa melakukan ini juga, untuk waktu yang sangat lama sebenarnya. Jadi apa yang salah dengan itu? Secara teknis, tidak ada yang salah dengan itu. Ia bekerja dan melakukan apa yang seharusnya dilakukan.

Tapi bayangkan sejenak, saat aplikasimu berkembang, kamu mungkin terbiasa memercikkan kodemu ke mana saja dengan sedikit echos, var_dumps dan debugger kustom. Sekarang diberikan, ini tidak obstruktif selama alur kerja pengujianmu, tapi bagaimana jika kamu lupa membersihkan beberapa kode debug sebelum masuk ke produksi? Hal ini dapat menyebabkan beberapa masalah yang sangat menyeramkan, karena para debugger kecil tersebut bahkan mungkin menemukan jalan mereka ke dalam kontrol versi dan tinggal di sana untuk waktu yang lama.

Pertanyaan selanjutnya adalah: bagaimana kamu melakukan debug dalam produksi? Sekali lagi, bayangkan kamu menjelajahi salah satu layanan web favoritmu dan tiba-tiba kamu mendapatkan daftar besar informasi debug yang disajikan kepadamu di layar. Sekarang tentu saja hal itu mungkin akan hilang setelah refresh browser berikutnya, tapi ini bukan pengalaman yang sangat bagus bagi pengguna website.

Sekarang terakhir, apakah kamu pernah ingin bisa melangkah melalui kode-mu, baris demi baris, melihat expressions, dan bahkan masuk ke pemanggilan fungsi untuk melihat mengapa hal itu menghasilkan nilai kembalian yang salah?

Nah, kamu pasti harus menggali dunia debugging profesional dengan Xdebug, karena bisa menyelesaikan semua masalah di atas.

Mengkonfigurasi MAMP

Saya tidak ingin terlalu jauh ke dalam proses download dan instalasi MAMP di Mac. Sebagai gantinya, saya akan berbagi denganmu bahwa saya menggunakan PHP 5.4.4 dan Port Apache standar [80] sepanjang pembacaan ini.

Keputusan Pertamamu

Sebuah catatan singkat sebelum kita mulai dengan membangun Xdebug kita sendiri melalui Homebrew: Jika kamu ingin mengambil rute yang paling mudah, MAMP sudah dilengkapi dengan Xdebug 2.2.0. Untuk mengaktifkannya, buka:

/Applications/MAMP/bin/php/php5.4.4/conf/php.ini

Dengan editor teks pilihanmu, menuju ke bagian paling bawah dan hapus tanda komentar pada baris terakhir dengan menghapus ;.

Dua baris terakhir dari file tersebut seharusnya dibaca seperti ini:

[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/ no-debug-non-zts-20100525/xdebug.so"

Sekarang jika kamu bertanya pada diri sendiri:

"Mengapa saya ingin memilih cara yang lebih sulit daripada yang ini?"

Dan jawaban saya untuk itu adalah, tidak pernah ada kesalahan untuk melihat melampaui bingkaimu dan mempelajari sesuatu yang baru. Terutama sebagai pengembang akhir-akhir ini, Mengabaikan barang terkait server akan selalu berguna di beberapa titik waktu. Dijanjikan.

Instal Xcode dan Command Line Tools

Anda bisa mendapatkan Apple Xcode secara gratis dari Mac App Store. Setelah mendownloadnya, masuklah ke preferensi aplikasi, tekan tab "Downloads" dan pasang "Command Line Tool"' dari daftar.

Instal Homebrew

Homebrew adalah manajer paket kecil yang rapi untuk Mac OS X yang membuatmu meniadakan semua barang Apple. Untuk menginstal Homebrew, cukup paste perintah berikut ke terminalmu.

ruby -e "$[curl -fsSkL raw.github.com/mxcl/homebrew/go]"

Di Mac, Homebrew akan menjadi cara yang paling mudah untuk menginstal Xdebug. Di Linux, mengkompilasi sendiri adalah cara terbaik untuk pergi; yang tidak semudah itu di Mac.

Petunjuk: Pengguna Windows hanya perlu mendownload file *.dll dari Xdebug.org, memasukkannya ke dalam folder XAMPP dan menambahkan path ke file php.ini mereka.

Sebagai pengembang PHP, kamu sekarang harus menyadari repo Github "homebrew-php" Jose Gonzalez, yang memiliki banyak "brews" yang berguna untukmu. Jika pernah bertanya pada diri sendiri bagaimana cara menginstal PHP 5.4 secara manual, kamu berada disana.

Sekarang jika kamu mengalami masalah saat menginstal Homebrew, lihat Jose's Readme.

Untuk menyelesaikan wisata Homebrew kita, kita ingin "mengetuk" formula brew Jose dengan menjalankan perintah berikut di dalam aplikasi terminalmu:

brew tap homebrew/dupes

Ini akan memperolehkan kita beberapa dependensi yang kita butuhkan untuk formula Jose.

brew tap josegonzalez/homebrew-php

Selesai! Sekarang kita harus siap untuk menginstal Xdebug dengan cara yang nyaman, di Mac.

Instal Xdebug

Kembali ke aplikasi terminalmu, harap jalankan:

brew install php54-xdebug

Jika Anda menggunakan PHP 5.3, ganti saja "4" dengan "3" ;]

Instalasi akan memakan waktu lama. Setelah selesai, kamu akan melihat ikon bir kecil dan beberapa petunjuk lebih lanjut yang dapat kamu abaikan.

Jadi apa yang baru saja terjadi? Homebrew mendownload semua file termasuk dependensinya dan membangunnya untukmu. Seperti yang telah saya katakan padamu, mengkompilasi sendiri pada Mac bisa merepotkan. Pada akhirnya, kita mendapatkan xdebug.so yang baru dikompilasi yang terletak di /usr/local/Cellar/php54-xdebug/2.2.1/.

Perhatian: Perlu diketahui bahwa Homebrew akan menginstal PHP 5.4 ke sistemmu selama proses berlangsung. Ini seharusnya tidak mempengaruhi apapun karena tidak diaktifkan pada sistemmu.

Untuk akhirnya menginstal Xdebug, kita hanya perlu mengikuti beberapa langkah lagi.

Ubah direktori [cd] ke folder ekstensi MAMP:

cd /Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525

Kamu dapat memeriksa ulang jalur dengan melihat baris terakhir /Applications/MAMP/bin/php/php5.4.4/conf/php.ini, karena ini adalah tujuan kita.

Backup xdebug.so yang ada untuk berjaga-jaga:

mv xdebug.so xdebug.so.bak

Kemudian copy Homebrew Xdebug build-mu:

cp /usr/local/Cellar/php54-xdebug/2.2.1/xdebug.so /Applications/MAMP/bin/php/php5.4.4/lib/php/extensions/no-debug-non-zts-20100525/

Jika kamu ingin memaksa perintah copy [cp] untuk menimpa file yang ada, cukup lakukan cp -X source target.

Terakhir, namun tidak kalah pentingnya, kita perlu memodifikasi file php.ini untuk memuat file ekstensi Xdebug. Buka /Applications/MAMP/bin/php/php5.4.4/conf/php.ini dengan editor teks pilihanmu, pergi ke bagian paling bawah dan hapus tanda komentar pada baris terakhir dengan menghapus titik koma di bagian depan. Jangan tutup filenya dulu.

Sekarang luncurkan ulang MAMP, masuk ke //localhost/MAMP/phpinfo.php. Jika semuanya berjalan dengan baik, kamu seharusnya menemukannya dalam output:


Jika tidak berhasil, pastikan kamu benar-benar menyalin xdebug.so dan memiliki jalur yang benar di file php.ini mu.

Memulai Debugging

Sebelum kita benar-benar memulai debugging, kita perlu mengaktifkan Xdebug. Oleh karena itu, saya harap kamu tidak menutup php.ini mu, karena kami perlu menambahkan baris ini sampai akhir, setelah opsi zend_extension:

xdebug.remote_enable = On

Simpan dan tutup file php.ini anda dan restart MAMP. Menuju ke //localhost/MAMP/phpinfo.php lagi dan cari xdebug.remote di situs ini. Nilaimu seharusnya terlihat persis seperti milik saya:


Jika tidak, ikuti prosedur yang sama dengan yang kamu gunakan untuk menambahkan remote_enable = On untuk laporan lainnya di akhir file php.ini mu.

Sekarang, buka IDE pilihanmu. kamu bisa menggunakan Xdebug dengan sejumlah solusi software populer seperti Eclipse, Netbeans, PhpStorm dan juga Sublime Text. Seperti yang saya katakan sebelumnya, saya akan menggunakan PhpStorm EAP 6 untuk demo ini.

Di dalam PhpStorm, buka preferensi aplikasi dan cari jalan ke "PHP \ Debug \ DBGp Proxy" di sisi kiri, seperti pada gambar di bawah ini:


Sekarang pilih kunci IDE pribadimu. Ini bisa berupa string alfanumerik yang kamu inginkan. Saya lebih suka menyebutnya PHPSTORM, tapi XDEBUG_IDE atau myname juga akan baik-baik saja. Penting untuk menetapkan nilai "Port" menjadi 9000 karena konfigurasi Xdebug standar menggunakan port ini untuk terhubung ke IDE.

Tip: Jika kamu perlu menyesuaikan ini, tambahkan xdebug.remote_port = portnumber ke file php.ini mu.

Perhatian: Komponen lain dapat mengubah nilai ini di dalam PhpStorm, jadi hati-hati jika ada yang gagal.

Selanjutnya, klik tombol telepon merah kecil dengan bug kecil di sebelahnya di toolbar atas. Ini seharusnya berubah menjadi hijau. Hal ini membuat PhpStorm mendengarkan koneksi Xdebug yang masuk.


Sekarang kita perlu membuat sesuatu untuk debug. Buat file PHP baru, sebut saja apa pun yang kamu suka dan paste dalam kode berikut:

Bài mới nhất

Chủ Đề