Rumah >pembangunan bahagian belakang >tutorial php >Debugging dengan teks xdebug dan luhur 3
Takeaways Key
Menyediakan XDEBUG
Secara umum anda akan menggunakan 127.0.0.1 sebagai tuan rumah anda. Walau bagaimanapun, jika anda menggunakan vagrant sebagai contoh, anda akan menggunakan sesuatu seperti 10.0.2.2, bergantung kepada mana XDebug dapat mencari sistem anda.
<span>xdebug.remote_enable=1 </span><span>xdebug.remote_handler=dbgp </span><span>xdebug.remote_host=127.0.0.1 </span><span>xdebug.remote_port=9000 </span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>
Log jauh tidak diperlukan, tetapi dalam hal masalah, itu adalah tempat di mana anda dapat mencari maklumat tentang kesilapan yang terjadi.
Jangan lupa untuk memulakan semula webserver anda!
menyediakan teks luhur 3
Sebaik sahaja anda mempunyai kawalan pakej yang dipasang, anda harus memulakan Teks Sublime 3. Buka palet perintah dari menu Alat dan cari "Pemasangan Pakej".
Sekarang anda boleh mencari pakej yang anda suka. Dalam kes kami, kami akan mencari pakej "Xdebug Client".
Bit terakhir yang perlu kita lakukan ialah menubuhkan projek dalam luhur. Cara paling mudah untuk melakukan ini ialah membuka direktori akar permohonan anda, pergi ke projek dan klik pada "Simpan Projek AS". Saya cadangkan anda menyimpan fail dalam akar aplikasi anda, jadi anda boleh menyimpannya dalam sistem kawalan versi anda jika anda menggunakan mana -mana dan anda boleh mengkonfigurasinya dengan mudah pada setiap masa.
Buka fail projek yang baru dibuat. Kandungannya akan kelihatan seperti ini:
<span>xdebug.remote_enable=1 </span><span>xdebug.remote_handler=dbgp </span><span>xdebug.remote_host=127.0.0.1 </span><span>xdebug.remote_port=9000 </span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>
kami akan menambah beberapa baris lagi:
<span>{ </span><span> "folders": </span><span> [ </span><span> { </span><span> "follow_symlinks": true, </span><span> "path": "." </span><span> } </span><span> ] </span><span>}</span>
Seperti yang anda lihat, saya hanya menambah URL ke aplikasi web sebenar saya. Saya boleh menetapkan lebih banyak tetapan untuk Xdebug, bagaimanapun, ini sudah cukup untuk bermula dengan. Saya juga boleh menetapkan URL ini dalam tetapan XDebug itu sendiri, tetapi dalam hal ini, saya tidak dapat bekerja pada pelbagai projek tanpa perlu menukar konfigurasi XDEBUG setiap kali.
kita kini boleh memulakan sesi Xdebug untuk melihat sama ada semuanya disediakan dengan betul. Dalam menu, klik pada Alat -> Xdebug dan klik pada Mula Debugging (Pelancaran Pelayar). Anda akan melihat bahawa laman web anda dibuka dan itu? XDEBUG_SESSION_START = Sublime.xdebug ditambah ke akhir URL. Ini akan memulakan sesi XDEBUG. Dalam Sublime, beberapa panel tambahan muncul di mana maklumat debug akan ditunjukkan, setelah anda menetapkan satu atau lebih titik putus.
mari kita berikan titik putus pertama. Titik putus pada dasarnya adalah bendera di mana permohonan anda akan berhenti apabila ia mencapai. Pada masa ini ia berhenti, anda boleh memeriksa semua nilai pembolehubah sehingga anda tahu sebenarnya apa yang sedang berlaku.
Kami boleh menambah titik putus dengan mengklik dengan tetikus kanan kami pada baris, pergi ke Xdebug dan kemudian mengklik Tambah/Buang Breakpoint. Penanda akan ditambah ke longkang garis untuk menunjukkan bahawa titik putus telah ditetapkan.
Stack Xdebug dan konteks Xdebug sangat menarik. Dalam timbunan, anda dapat melihat keseluruhan stacktrace panggilan anda melalui.
Dalam konteks, anda akan melihat semua pembolehubah global, tetapi juga pembolehubah yang anda tentukan sendiri. Anda boleh mengklik pada pembolehubah ini untuk melihat dengan tepat pembolehubah ini memegang. Sebagai contoh, dalam tangkapan skrin di bawah, saya mengklik pada pembolehubah $ _server.
Perhatikan bahawa anak panah kuning menunjuk pada baris aplikasi yang kini dihentikan.
jadi aplikasi kami dihentikan dan sekarang kita dapat melihat melalui pembolehubah yang ditakrifkan. Walau bagaimanapun, kami sudah selesai dan kami mahu bergerak. Apa sekarang? Apabila anda betul tetikus klik sekali lagi dan berlegar di menu Xdebug, anda akan mempunyai beberapa pilihan:
Run and Stop cukup mudah difahami. Kaedah langkah boleh menjadi sedikit mengelirukan. Mari kita menyelam dengan contoh mudah.
<span>xdebug.remote_enable=1 </span><span>xdebug.remote_handler=dbgp </span><span>xdebug.remote_host=127.0.0.1 </span><span>xdebug.remote_port=9000 </span><span>xdebug.remote_log="/var/log/xdebug/xdebug.log"</span>
Bayangkan anda menambah titik putus pada baris pertama bar kaedah. Jadi pada baris dengan komen Breakpoint (// breakpoint).
dengan langkah ke dalam, debugger akan melangkah ke kaedah Foobar dan akan berhenti di sana pada baris pertama. Jadi dalam kes ini, debugger akan berhenti pada array_values kembali ($ arr); garis.
Langkah ke atas akan memanggil kaedah, tetapi tidak akan berhenti. Ia akan berhenti di baris seterusnya yang tersedia selepas memanggil kaedah. Jadi dalam kes ini, ia akan berhenti pada pulangan $ arr;
Akhir sekali, dengan langkah keluar ia akan berjalan melalui kaedah bar keseluruhan dan kembali ke pemanggil. Dalam kes ini, ia akan keluar dari objek, kembali kepada pemanggil asal.
Jika anda hanya membuat keputusan untuk berlari, aplikasi akan berjalan lebih jauh sehingga saat ia selesai melaksanakan atau titik putus yang lain berlaku.
Dalam artikel ini kita melihat bagaimana kita dapat mengintegrasikan Xdebug dengan Sublime dan memastikan kita memahami bagaimana untuk debug. Hampir setiap IDE yang sesuai untuk PHP boleh diintegrasikan dengan XDEBUG. Sekiranya anda berminat untuk menyahpepijat seperti ini di Netbeans, lihat artikel yang disebutkan dalam Pengenalan. Adakah anda menggunakan titik putus? Atau adakah anda menggunakan fungsi PHP seperti VAR_DUMP untuk mendapatkan data debug anda? Beritahu kami dalam komen di bawah!
Untuk memasang Xdebug untuk teks Sublime 3, anda perlu memasang pelanjutan PHP XDebug. Ini boleh dilakukan dengan memuat turun fail DLL yang sesuai dari laman web XDEBUG dan menambahkannya ke direktori PHP Extensions anda. Selepas itu, anda perlu mengubah suai fail php.ini anda untuk memasukkan lanjutan XDEBUG. Sebaik sahaja pelanjutan PHP XDEBUG dipasang, anda boleh memasang pakej XDEBUG untuk Teks Sublime 3 menggunakan kawalan pakej.
Mengkonfigurasi xdebug untuk teks luhur 3 melibatkan mengubah suai fail php.ini anda dan tetapan Teks Sublime anda 3. Dalam fail php.ini anda, anda perlu menetapkan xdebug.remote_enable dan xdebug.remote_autostart tetapan ke 1. Dalam tetapan teks 3 anda, anda perlu menentukan laluan ke PHP anda yang boleh dilaksanakan dan nombor port yang perlu digunakan oleh Xdebug anda .
Jika Xdebug tidak berfungsi dalam Teks Sublime 3, mungkin ada beberapa sebab. Satu isu biasa ialah lanjutan PHP XDEBUG tidak dipasang atau dikonfigurasi dengan betul. Isu lain ialah pakej Xdebug untuk Teks Sublime 3 tidak dipasang atau dikonfigurasi dengan betul. Ia juga mungkin ada masalah dengan PHP atau Sublime Text 3 tetapan 3. Teks Sublime 3, anda perlu menetapkan titik putus dalam kod anda. Ini boleh dilakukan dengan mengklik di longkang di sebelah baris kod di mana anda mahu titik putus. Sebaik sahaja titik putus ditetapkan, anda boleh memulakan sesi debugging dengan memilih "Mula Debugging" dari menu Xdebug. Boleh menggunakan XDEBUG dengan Teks Sublime 3 pada Mac. Proses untuk memasang dan mengkonfigurasi XDEBUG pada MAC adalah serupa dengan proses untuk Windows, tetapi terdapat beberapa perbezaan. Sebagai contoh, lokasi fail php.ini dan direktori sambungan php mungkin berbeza.
Bolehkah saya debug aplikasi PHP jauh dengan Xdebug dan Sublime Text 3? Teks Sublime 3. Ini memerlukan konfigurasi tambahan, termasuk menetapkan xdebug.remote_host dan xdebug.remote_port Tetapan dalam fail php.ini anda.
Untuk mengemas kini xdebug dalam teks luhur 3, anda perlu mengemas kini lanjutan php xdebug dan pakej xdebug untuk teks luhur 3. Dikemaskini dengan memuat turun fail DLL terkini dari laman web XDEBUG dan menggantikan fail DLL yang sedia ada dalam direktori PHP Extensions anda. Pakej XDebug untuk Teks Sublime 3 boleh dikemas kini menggunakan Kawalan Pakej.
Atas ialah kandungan terperinci Debugging dengan teks xdebug dan luhur 3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!