Xdebug is een krachtige PHP-foutopsporings- en profileringstool waarmee we PHP-applicaties kunnen analyseren en optimaliseren. Het ondersteunt functies zoals stapsgewijze foutopsporing, prestatiemeting en stacktracing, waardoor het oplossen van problemen veel eenvoudiger wordt en een beter inzicht in de code ontstaat. Hieronder vindt u een kleine installatiehandleiding voor gebruik binnen VSCode.
Installeer Xdebug
Als voorbeeld zullen we Xdebug installeren op een huidig Ubuntu-systeem:
sudo apt-get install -y php8.4-xdebug
Ten slotte creëren we een tijdelijke map voor latere opslag van profilerings- en traceringsgegevens:
mkdir -p /tmp/xdebug
Configureer Xdebug
Na de installatie configureren we Xdebug. Om dit te doen, bewerken we het nl/php.ini:
vi /etc/php/8.4/fpm/conf.d/custom.ini
Wat volgt is een verstandige basisconfiguratie:
[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
Nadat we deze aanpassingen hebben doorgevoerd, starten we PHP-FPM opnieuw op om de wijzigingen toe te passen:
sudo service php8.4-fpm restart
Configureer VSCode
Om Xdebug in Visual Studio Code te gebruiken zijn twee extensies en een configuratieaanpassing vereist. Wij installeren dit:
- PHP-foutopsporing: voor basisfoutopsporingsfunctionaliteit.
- PHP-profiler: Voor het analyseren van de cachegrind-bestanden.
Ten slotte maken we het launch.json- configuratiebestand in de map .vscode van het te analyseren project:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"ignore": ["**/vendor/**/*.php"]
}
]
}
Installeer de Chrome-extensie
De Xdebug- helperextensie heeft zichzelf bewezen voor flexibel foutopsporing in de browser. Dit maakt het mogelijk om Xdebug alleen in of uit te schakelen wanneer dat nodig is. U kunt ook eenvoudig de foutopsporingsmodus wijzigen (bijvoorbeeld om over te schakelen van foutopsporing naar profilering):
Configureer WordPress
Wanneer u Xdebug in een WordPress-omgeving gebruikt, kan het handig zijn om foutopsporing binnen cron-jobs uit te schakelen wanneer een foutopsporingssessie actief is. Dit maakt het debuggen van verzoeken eenvoudiger. Om dit te doen, voegt u de volgende regel toe aan: 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);
}
Met deze configuratie hebben we een krachtige opstelling waarmee we complexe foutopsporingsproblemen met precisie kunnen aanpakken. Of het nu gaat om het vinden van hardnekkige bugs of het verfijnen van prestatieproblemen: Xdebug maakt het werk niet alleen efficiënter, maar brengt ook een nieuwe kwaliteit in de ontwikkeling door controle en duidelijkheid over de code.