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.
Persekitaran pengendalian tutorial ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
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:
Kelemahan:
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
symfony/var-dumper
: ${HOME}/.config/composer
secara lalai composer global require symfony/var-dumper
php.ini
fail dan laksanakan PHP Sebelum kod, masukkan fail yang ditentukan auto_prepend_file = ${HOME}/.config/composer/vendor/autoload.php
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
XDEBUG_SESSION_START
parameterPenyahpepijatan 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:
XDEBUG_SESSION_START=session_name
. 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:
XDEBUG_CONFIG="idekey=session_name"
kekunci ide ini perlu sama dengan set kunci ide dalam bahagian Xdebug php.ini
. 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
export XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo $XDEBUG_CONFIG // 查看环境变量 unset XDEBUG_CONFIG // 删除环境变量
set XDEBUG_CONFIG="idekey=session_name" // 设置环境变量 echo %XDEBUG_CONFIG% // 查看环境变量 set XDEBUG_CONFIG // 查看环境变量 set XDEBUG_CONFIG= // 删除环境变量
推荐学习:《PHP视频教程》
Atas ialah kandungan terperinci Apakah kaedah penyahpepijatan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!