Felsökning i PHP med Xdebug

Xdebug är ett kraftfullt PHP-felsöknings- och profileringsverktyg som hjälper oss att analysera och optimera PHP-applikationer. Den stöder funktioner som steg-för-steg-felsökning, prestandamätning och stackspårning, vilket gör felsökningen mycket enklare och ger bättre insikter i koden. Nedan finns en liten installationsguide för användning inom VSCode.


Installera Xdebug

Som ett exempel installerar vi Xdebug på ett aktuellt Ubuntu-system:

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

Slutligen skapar vi en tillfällig katalog för senare lagring av profilerings- och spårningsdata:

mkdir -p /tmp/xdebug

Konfigurera Xdebug

Efter installationen konfigurerar vi Xdebug. För att göra detta redigerar vi det sv/php.ini:

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

Det som följer är en vettig grundkonfiguration:

[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

Efter att ha gjort dessa justeringar startar vi om PHP-FPM för att tillämpa ändringarna:

sudo service php8.4-fpm restart

Konfigurera VSCode

För att använda Xdebug i Visual Studio Code krävs två tillägg och en konfigurationsjustering. Vi installerar detta:

Slutligen skapar vi launch.json -konfigurationsfilen i .vscode -mappen för projektet som ska analyseras:

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

Installera Chrome Extension

Xdebug helper -tillägget har bevisat sig för flexibel felsökning i webbläsaren. Detta gör det möjligt att aktivera eller inaktivera Xdebug endast när det behövs. Du kan också enkelt ändra felsökningsläget (till exempel för att byta från felsökning till profilering):

Konfigurera WordPress

När du använder Xdebug i en WordPress-miljö kan det vara användbart att inaktivera felsökning inom cron-jobb när en felsökningssession är aktiv. Detta gör felsökningsförfrågningar enklare. För att göra detta, lägg till följande rad i: 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);
}

Med denna konfiguration har vi en kraftfull installation som gör att vi kan hantera komplexa felsökningsproblem med precision. Oavsett om det gäller att hitta envisa buggar eller finjustera prestandaproblem - Xdebug gör inte bara arbetet effektivare, utan ger också en ny kvalitet till utvecklingen genom kontroll och tydlighet över koden.

Tillbaka