Fejlretning af PHP med Xdebug

Xdebug er et kraftfuldt PHP-fejlfindings- og profileringsværktøj, der hjælper os med at analysere og optimere PHP-applikationer. Den understøtter funktioner som trin-for-trin fejlretning, ydeevnemåling og staksporing, hvilket gør fejlfinding meget nemmere og giver bedre indsigt i koden. Nedenfor er en lille opsætningsvejledning til brug i VSCode.


Installer Xdebug

Som et eksempel installerer vi Xdebug på et nuværende Ubuntu-system:

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

Til sidst opretter vi en midlertidig mappe til senere lagring af profilerings- og sporingsdata:

mkdir -p /tmp/xdebug

Konfigurer Xdebug

Efter installationen konfigurerer vi Xdebug. For at gøre dette, redigerer vi det da/php.ini:

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

Det følgende er en fornuftig 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 at have foretaget disse justeringer genstarter vi PHP-FPM for at anvende ændringerne:

sudo service php8.4-fpm restart

Konfigurer VSCode

For at bruge Xdebug i Visual Studio Code kræves to udvidelser og en konfigurationsjustering. Vi installerer dette:

Til sidst opretter vi launch.json -konfigurationsfilen i .vscode -mappen for det projekt, der skal analyseres:

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

Installer Chrome-udvidelsen

Xdebug helper -udvidelsen har bevist sig for fleksibel fejlfinding i browseren. Dette gør det muligt kun at aktivere eller deaktivere Xdebug, når det er nødvendigt. Du kan også nemt ændre fejlretningstilstanden (for eksempel for at skifte fra fejlretning til profilering):

Konfigurer WordPress

Når du bruger Xdebug i et WordPress-miljø, kan det være nyttigt at deaktivere fejlfinding i cron-job, når en fejlretningssession er aktiv. Dette gør debugging anmodninger lettere. For at gøre dette skal du tilføje følgende linje til: wp-config.php -en:

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

Med denne konfiguration har vi en kraftfuld opsætning, der giver os mulighed for at tackle komplekse fejlfindingsproblemer med præcision. Uanset om man finder genstridige fejl eller finjusterer ydeevneproblemer - Xdebug gør ikke kun arbejdet mere effektivt, men bringer også en ny kvalitet til udvikling gennem kontrol og klarhed over koden.

Tilbage