Xdebug to potężne narzędzie do debugowania i profilowania PHP, które pomaga nam analizować i optymalizować aplikacje PHP. Obsługuje takie funkcje, jak debugowanie krok po kroku, pomiar wydajności i śledzenie stosu, co znacznie ułatwia rozwiązywanie problemów i zapewnia lepszy wgląd w kod. Poniżej znajduje się mały przewodnik konfiguracji do użytku w VSCode.
Zainstaluj Xdebuga
Jako przykład instalujemy Xdebug w bieżącym systemie Ubuntu:
sudo apt-get install -y php8.4-xdebug
Na koniec tworzymy katalog tymczasowy do późniejszego przechowywania danych profilowania i śledzenia:
mkdir -p /tmp/xdebug
Skonfiguruj Xdebug
Po instalacji konfigurujemy Xdebug. Aby to zrobić, edytujemy go pl/php.ini:
vi /etc/php/8.4/fpm/conf.d/custom.ini
Poniżej znajduje się rozsądna konfiguracja podstawowa:
[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
Po dokonaniu tych zmian ponownie uruchamiamy PHP-FPM, aby zastosować zmiany:
sudo service php8.4-fpm restart
Skonfiguruj VSCode
Aby używać Xdebug w Visual Studio Code, wymagane są dwa rozszerzenia i dostosowanie konfiguracji. Instalujemy to:
- Debugowanie PHP: dla podstawowych funkcji debugowania.
- Profiler PHP: Do analizy plików cachegrind.
Na koniec tworzymy plik konfiguracyjny launch.json w folderze .vscode projektu, który ma być analizowany:
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003,
"ignore": ["**/vendor/**/*.php"]
}
]
}
Zainstaluj rozszerzenie Chrome
Rozszerzenie pomocnicze Xdebug sprawdziło się w elastycznym debugowaniu w przeglądarce. Dzięki temu można aktywować lub dezaktywować Xdebug tylko wtedy, gdy jest to konieczne. Możesz także łatwo zmienić tryb debugowania (na przykład, aby przejść z debugowania na profilowanie):
Skonfiguruj WordPressa
Podczas korzystania z Xdebug w środowisku WordPress przydatne może być wyłączenie debugowania w zadaniach cron, gdy aktywna jest sesja debugowania. Ułatwia to debugowanie żądań. Aby to zrobić, dodaj następujący wiersz do: 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);
}
Dzięki tej konfiguracji mamy potężną konfigurację, która pozwala nam precyzyjnie rozwiązywać złożone problemy z debugowaniem. Niezależnie od tego, czy znajdujesz uporczywe błędy, czy dostrajasz problemy z wydajnością - Xdebug nie tylko sprawia, że praca jest bardziej wydajna, ale także wnosi nową jakość do programowania poprzez kontrolę i przejrzystość kodu.