Apakah kaedah penyahpepijatan dalam PHP?

青灯夜游
Lepaskan: 2023-03-15 12:28:02
asal
10215 orang telah melayarinya

Kaedah nyahpepijat dalam PHP ialah: 1. Tambah echo, var_dump, print_r dan pernyataan keluar dalam kod PHP, dan cetak maklumat melalui penyemak imbas untuk nyahpepijat 2. Gunakan Xdebug untuk penyahpepijatan; untuk nyahpepijat.

Apakah kaedah penyahpepijatan dalam PHP?

Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3

Kaedah penyahpepijatan yang biasa digunakan dalam PHP

Nyahpepijat dengan mencetak maklumat daripada penyemak imbas

Kaedah

Tambah gema, var_dump, print_r dan keluar , lihat output dalam penyemak imbas.

Kebaikan dan Kelemahan

Kelebihan:

  • Mudah, mudah digunakan, tidak perlu memasang pemalam
  • Untuk kod yang anda tulis atau rangka kerja yang lebih biasa, anda boleh menggunakannya seperti ini

Kelemahan:

  • Untuk logik berbilang cawangan, anda perlu menambah banyak kod atau cuba beberapa kali
  • Untuk Logik yang tidak dikenali tidak dapat menggambarkan proses pelaksanaan yang lengkap.
  • Adalah mungkin untuk meninggalkan penyataan penyahpepijatan dalam projek
  • Tidak dapat satu langkah

Helah

Apabila penyahpepijatan, Untuk memformat pembolehubah output, anda selalunya perlu melaksanakan fungsi dump() anda sendiri dalam projek. Dengan Komposer, fungsi symfony/var-dumper dalam pakej dump() boleh dipasang secara global, menjadikannya tersedia untuk semua projek tanpa mengubah suai projek. Pakej

  • Pemasangan globalsymfony/var-dumper:
    akan dipasang pada direktori ${HOME}/.config/composer secara lalai
composer global require symfony/var-dumper
Salin selepas log masuk
  • Ubah suai php.ini fail dan laksanakan PHP Sebelum kod, masukkan fail yang ditentukan
auto_prepend_file = ${HOME}/.config/composer/vendor/autoload.php
Salin selepas log masuk

Gunakan Xdebug untuk nyahpepijat

XDebug ialah C /S struktur, di mana Pelanggan Ia adalah Xdebug dipasang dalam PHP, Pelayan ialah pemalam yang dipasang dalam IDE, dan menggunakan protokol DBGP untuk berkomunikasi. Apabila PHP menjalankan skrip, ia menghantar maklumat penyahpepijatan kepada IDE melalui pemalam Xdebug dan menerima isyarat kawalan daripada IDE.

Anda perlu memasang dan mendayakan Xdebug untuk PHP, dan kemudian sediakan pemalam Xdebug IDE supaya kedua-duanya boleh berkomunikasi.

Kebaikan dan Kelemahan

  • Menyokong penyahpepijatan satu langkah dan pemerolehan nilai pembolehubah arbitrari
  • Konfigurasi kompleks, memerlukan IDE untuk memasang palam- ins
  • Sokongan kerjasama dengan penyemak imbas, permintaan itu perlu membawa XDEBUG_SESSION_START parameter

Penyahpepijatan Apl Web

Untuk aplikasi web, Xdebug mod penyahpepijatan mesti dihidupkan , bendera tambahan mesti ditambahkan pada permintaan yang dihantar oleh penyemak imbas. Anda boleh menambah XDEBUG_SESSION_START=session_name dalam parameter GET/POST/Cookie, supaya Xdebug faham bahawa permintaan ini perlu dinyahpepijat dan disambungkan ke IDE.

Tetapi tetapan manual setiap kali juga menyusahkan Terdapat dua cara untuk memudahkan operasi:

  • Gunakan kaedah yang disediakan oleh IDE. Untuk PhpStorm, lihat Menyahpepijat Aplikasi Web PHP dengan Konfigurasi Nyahpepijat Jalankan. Apabila menggunakannya, anda perlu mengkonfigurasi Pelayan Web dalam IDE, kemudian menyediakan Aplikasi Web PHP, klik butang Nyahpepijat untuk memulakan penyahpepijatan, kemudian IDE akan secara automatik membuka pelayar dan memasukkan URL, dan menambah XDEBUG_SESSION_START=session_name.
  • Gunakan pemalam penyemak imbas dan hidupkan suis penyahpepijatan pemalam itu boleh membawa kuki yang sepadan secara automatik dalam permintaan. Untuk Chrome anda boleh memasang pembantu Xdebug.

Nyahpepijat melalui terminal konsol (mod CLI)

Untuk aplikasi bukan web, seperti tugas yang dijadualkan atau ujian unit, anda boleh terus Debug dalam konsol.

Gunakan kekunci pintasan Alt F12 untuk membuka terminal baris arahan dalam PhpStorm. Walau bagaimanapun, kerana hanya satu terminal boleh dipaparkan dalam IDE, terminal penyahpepijatan selepas penyahpepijatan dihidupkan akan meliputi terminal baris arahan, jadi adalah lebih baik untuk membuka terminal baris arahan berasingan (anda boleh menggunakan tetingkap DOS atau PowerShell di bawah Windows ).

Kaedah dan prinsip

Permintaan nyahpepijat aplikasi web melalui bendera parameter GET/POST/Cookie, manakala aplikasi bukan web mendayakan penyahpepijatan dengan menetapkan pembolehubah persekitaran dalam terminal baris arahan .

Dua langkah:

  • Tetapkan pembolehubah persekitaran XDEBUG_CONFIG="idekey=session_name" kekunci ide ini perlu sama dengan set kunci ide dalam bahagian Xdebug php.ini.
  • Laksanakan skrip dalam terminal baris arahan. Apabila dilaksanakan, terminal nyahpepijat IDE akan dibangkitkan, membenarkan penyahpepijatan satu langkah, dan hasil output akan dipaparkan dalam terminal baris arahan dalam masa nyata.

Apakah kaedah penyahpepijatan dalam PHP?

IDE biasanya menyediakan operasi pintasan Untuk PHPStorm, anda boleh merujuk kepada Menyahpepijat skrip PHP CLI dengan PhpStorm.

Selepas penyahpepijatan dimulakan melalui IDE, IDE akan memulakan pemalam Xdebug untuk mendengar port tertentu (PhpStorm lalai kepada 9000, tetapi ini bercanggah dengan PHP-FPM dan boleh ditukar kepada 9001) kepada dapatkan maklumat penyahpepijatan yang dikembalikan oleh pelayan PHP.

D:\lnmp\php72\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 D:\lihongfeng\workspace\untitled\index.php
Salin selepas log masuk

设置、查看和释放环境变量

  • Linux
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo $XDEBUG_CONFIG // 查看环境变量
unset XDEBUG_CONFIG // 删除环境变量
Salin selepas log masuk
  • Windows
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量
echo %XDEBUG_CONFIG% // 查看环境变量
set XDEBUG_CONFIG // 查看环境变量
set XDEBUG_CONFIG= // 删除环境变量
Salin selepas log masuk

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Apakah kaedah penyahpepijatan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!