Men-debug di PHP dengan Xdebug

Xdebug adalah alat debugging dan pembuatan profil PHP yang membantu kita menganalisis dan mengoptimalkan aplikasi PHP. Ini mendukung fitur-fitur seperti proses debug langkah demi langkah, pengukuran kinerja, dan pelacakan tumpukan, yang membuat pemecahan masalah menjadi lebih mudah dan memberikan wawasan yang lebih baik tentang kode. Di bawah ini adalah panduan pengaturan kecil untuk digunakan dalam VSCode.


Instal Xdebug

Sebagai contoh, kami menginstal Xdebug pada sistem Ubuntu saat ini:

sudo apt-get install -y php8.4-xdebug

Terakhir, kami membuat direktori sementara untuk penyimpanan data pembuatan profil dan penelusuran nanti:

mkdir -p /tmp/xdebug

Konfigurasikan Xdebug

Setelah instalasi, kami mengkonfigurasi Xdebug. Untuk melakukan ini, kami mengeditnya id/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

Berikut ini adalah konfigurasi dasar yang masuk akal:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

Setelah melakukan penyesuaian ini, kami memulai ulang PHP-FPM untuk menerapkan perubahan:

sudo service php8.4-fpm restart

Konfigurasikan VSCode

Untuk menggunakan Xdebug dalam Visual Studio Code, diperlukan dua ekstensi dan penyesuaian konfigurasi. Kami menginstal ini:

Terakhir, kami membuat file konfigurasi launch.json di folder .vscode proyek yang akan dianalisis:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Pasang Ekstensi Chrome

Ekstensi pembantu Xdebug telah membuktikan dirinya untuk debugging yang fleksibel di browser. Ini memungkinkan untuk mengaktifkan atau menonaktifkan Xdebug hanya jika diperlukan. Anda juga dapat dengan mudah mengubah mode debug (misalnya, untuk beralih dari debugging ke pembuatan profil):

Konfigurasikan WordPress

Saat menggunakan Xdebug di lingkungan WordPress, mungkin berguna untuk menonaktifkan debugging dalam pekerjaan cron ketika sesi debugging aktif. Hal ini membuat permintaan debug lebih mudah. Untuk melakukan ini, tambahkan baris berikut ke: wp-config.php A:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

Dengan konfigurasi ini kami memiliki pengaturan yang kuat yang memungkinkan kami mengatasi masalah debugging yang rumit dengan presisi. Baik menemukan bug yang membandel atau menyempurnakan masalah kinerja - Xdebug tidak hanya membuat pekerjaan lebih efisien, tetapi juga menghadirkan kualitas baru pada pengembangan melalui kontrol dan kejelasan atas kode.

Kembali