Rumah >pembangunan bahagian belakang >tutorial php >Debugging dengan teks xdebug dan luhur 3

Debugging dengan teks xdebug dan luhur 3

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-22 09:21:17854semak imbas

Debugging dengan teks xdebug dan luhur 3

Debugging - Kita semua melakukannya banyak. Kod menulis dengan sempurna pada kali pertama adalah sukar dan hanya beberapa (jika ada) berjaya melakukannya. Lebih dari setahun yang lalu, Shameer menulis artikel mengenai SitePoint tentang bagaimana anda boleh debug permohonan anda menggunakan Xdebug dan NetBeans. Dalam artikel ini, kita akan melihat bagaimana kita boleh debug menggunakan xdebug dalam kombinasi dengan teks luhur.

Takeaways Key

    Untuk debug dengan teks XDebug dan Sublime 3, sambungan PHP XDEBUG perlu dipasang dan Teks Sublime 3 harus dikonfigurasi dengan pakej XDEBUG yang dipasang melalui Kawalan Pakej.
  • xdebug mesti dikonfigurasikan dalam fail php.ini atau dalam fail xdebug.ini dengan tetapan tertentu, dan kemudian webserver harus dimulakan semula.
  • Untuk teks luhur 3, projek mesti ditubuhkan, dan URL aplikasi web harus ditambah ke tetapan fail projek. Ini membolehkan penyahpepijatan pada pelbagai projek tanpa perlu menukar konfigurasi xdebug setiap kali.
  • Sesi Xdebug boleh dimulakan, dan titik putus boleh ditetapkan di mana permohonan akan dihentikan. Dari sana, pembolehubah boleh diperiksa, dan permohonan itu boleh dijalankan sehingga titik putus seterusnya atau sehingga akhir menggunakan pelbagai arahan seperti "Run", "Step Into", "Step Over", dan "Step Out".
  • Bermula

Pertama sekali, kita perlu memasang pelanjutan PHP XDEBUG. Sekiranya anda tidak pasti bagaimana untuk menyelesaikannya, sila lihat pautan yang disediakan dalam pengenalan. Pastikan Xdebug bekerja dengan menyemak sama ada ia disenaraikan dalam phpinfo anda ().

Sudah tentu kita juga memerlukan teks luhur. Saya akan menggunakan versi terkini: Teks Sublime 3. Ia juga harus berfungsi dengan Teks Sublime 2.


Menyediakan XDEBUG

kita perlu mengkonfigurasi Xdebug dengan menambahkan yang berikut ke fail php.ini anda, atau lebih baik, ke fail xdebug.ini seperti yang diterangkan di sini di bawah cara di linux.

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

Salah satu kekuatan Sublime adalah hakikat bahawa anda boleh melanjutkannya dengan mudah dengan pakej. Dalam kes ini, kami akan memasang pakej XDebug. Jika anda belum melakukannya, pastikan anda boleh memasang pakej dengan memasang kawalan pakej.

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".
Debugging dengan teks xdebug dan luhur 3

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.

Mulakan sesi xdebug

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.

breakpoints

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.

Debugging dengan teks xdebug dan luhur 3

Kami membuka penyemak imbas kami sekali lagi dan teruskan dengan sesi yang baru saja kami mulakan. Anda akan melihat bahawa sebaik sahaja anda pergi ke halaman di mana titik putus, halaman akan berhenti memuatkan. Sekiranya anda kini membuka luhur, anda akan melihat banyak maklumat yang ditunjukkan dalam panel xdebug.

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.

Debugging dengan teks xdebug dan luhur 3 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 yang akan menjalankan aplikasi sehingga titik putus seterusnya atau sehingga berakhir.
  • Run to line yang akan berjalan sehingga garis yang anda klik.
  • Langkah ke dalam akan melangkah ke fungsi semasa dan berhenti selepas.
  • Langkah ke atas akan melangkah ke atas fungsi semasa dan berhenti selepas.
  • Langkah keluar akan keluar dari fungsi semasa dan berhenti selepas.
  • berhenti akan berhenti debugging.
  • Detas juga akan berhenti debugging.

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.

Kesimpulan

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!

Soalan Lazim (Soalan Lazim) Mengenai Debugging Dengan Xdebug dan Teks Sublime 3

Bagaimana saya memasang xdebug untuk teks luhur 3?

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.

Bagaimana saya mengkonfigurasi xdebug untuk teks luhur 3?

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 .

Mengapa Xdebug tidak bekerja dalam teks luhur 3?

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.

Bagaimana saya melihat nilai pembolehubah dengan xdebug dalam teks luhur 3? XDEBUG dalam Teks Sublime 3, anda perlu menggunakan ciri "Watch". Ini membolehkan anda menentukan pembolehubah yang ingin anda pantau semasa sesi debugging. Apabila perubahan berubah -ubah yang ditonton, nilai barunya dipaparkan di panel XDebug. Teks Sublime 3. Perintah ini membolehkan anda mengawal pelaksanaan baris kod anda mengikut baris, menjadikannya lebih mudah untuk mengenal pasti dan memperbaiki bug. Sesi penyahpepijatan dalam Sublime Text 3, anda boleh menggunakan perintah "Stop Debugging" dari menu Xdebug. Ini akan menamatkan sesi debugging dan kawalan kembali ke teks yang luhur 3.

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.

bagaimana saya mengemas kini xdebug dalam teks luhur 3?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn