Debugowanie w PHP za pomocą Xdebug

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:

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.

Plecy