PHP – Xdebug i PhpStorm

No Comments

xdebug Całe wieki nic tu się nie działo, więc będzie coś nowego, ale krótko…

Przez wiele lat moją bolączką w PHP były ograniczone możliwości debugowania. Nawet, kiedy powstał jakiś debugger, ciężko było ogarnąć jego działanie, a bez IDE (przyznaję, kiedyś pisałem w PSPadzie), była to droga przez mękę…

Kto z nas nigdy nie zrobił czegoś takiego?

echo 'dupa';

Na szczęście mroczne czasy minęły, miejmy nadzieję, że bezpowrotnie.

 

Niniejsza miniinstrukcja używa następującej konfiguracji (nie próbowałem w innej, ale z pewnością się da):

…i zakłada, że powyższe aplikacje są już zainstalowane i z grubsza działają. Celem zmniejszenia ilości tekstu używam poniżej domyślnej ścieżki instalacyjnej XAMPPa c:\xampp\.

Instalacja Xdebug

  1. Ściągnij najnowszą stabilną wersję php_xdebug.dll.
  2. Zapisz z powyższą nazwą w katalogu XAMPPa, w podkatalogu c:\xampp\php\ext\.

Konfiguracja serwera (PHP)

  1. Na końcu pliku c:\xampp\php\php.ini dodaj:
zend_extension = "C:\xampp\php\ext\php_xdebug.dll"
xdebug.remote_enable = 1
xdebug.remote_port=9000
xdebug.scream = 0
xdebug.cli_color = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "127.0.0.1"
xdebug.trace_output_dir = "C:\xampp\tmp"
xdebug.idekey = PHPSTORM
  1. Zrestartuj Apache.

Konfiguracja Google Chrome

  1. Zainstaluj Xdebug helper dla Chrome
  2. W opcjach wtyczki istaw IDE na PhpStorm z domyślnym kluczem PHPSTORM.

Konfiguracja PhpStorm

  1. Otwórz menu Run -> Edit configurations
  2. Dodaj konfigurację, klikając zielony plus i wybierając PHP Remote Debug
  3. Wybierz serwer lub utwórz nowy z następującymi wartościami:
Host: <<Twój host>>
Port: 80
Debugger: Xdebug
IDE key (session id): PHPSTORM

Użycie:

  1. W IDE wybierz z menu Run -> Start listening for PHP Debug Connections
  2. W Chrome użyj skrótu Ctrl+Shift+X i wybierz Debug
  3. Odśwież stronę.
  4. Polecam opanować skróty klawiaturowe debugowania w PhpStorm.

 

That’s all folks!

Categories: PHP, Zabawy z kodem

Leave a Reply

Your email address will not be published. Required fields are marked *