Autor wpisu: matiit, dodany: 16.07.2013 19:38, tagi: php
Debugowanie. Dziwny temat. Rzecz niby bardzo ważna i niesamowicie pomocna. Ucząc się wielu języków naturalną rzeczą jest rozdział o debugerze. Mówię szczególnie o językach kompilowanych, np. C/C++. Całkowicie inaczej jest jeśli chodzi o naukę języków skryptowych (PHP, Ruby czy Pythona na przykład). Przeważnie pomija się wspominanie o debugowaniu, w końcu interpreter przeważnie rzuca celną informację o błędzie. Wiele tutoriali i książek pokazuje jednak pewną instynktowną formę debugowania kodu. Metodę „ślepych printów, var_dumpów itd. Tak zazwyczaj jest najłatwiej. Chciałem jednak dziś pokazać trochę ambitniejsze podejście do debugowania.
Cel
Na początek: Co tak właściwie chcielibyśmy uzyskać?
- Zatrzymywanie naszego skryptu gdzie tylko chcemy
- „Kroczenie” przez nasz skrypt linijka po linijce (wykonując go w tym czasie)
- Podglądanie jak się zmieniają zmienne
- Ewaluacja kodu w dowolnym momencie działania skryptu
Dla programisty C++ czy Javy powyższe punkty są pewnie niczym takim – przecież taki programista używa ich w tramwaju kodując ze smartphona. Co innego początkujący pythonowcy czy PHP’owcy. Oni przeważnie czegoś takiego jeszcze nie uświadczyli – a przecież to takie piękne. A więc…
Jak uzyskać taki efekt w PHP?
Xdebug – nie jest to oczywiście jedyna opcja, ale to z tym rozwiązaniem mam najwięcej doświadczenia, więc xdebuga właśnie chciałem przedstawić.
Pokażę instalację na ubuntu (z przyzwyczajenia z kursu Laravel, na który oczywiście serdecznie zapraszam – http://blog.matiit.pl/category/kurs-laravel/).
Na początku musimy wyposażyć nasze PHP w xdebuga:
sudo apt-get install php5-xdebug
Oraz oczywiście włączyć je w konfiguracji php, w ubuntu jest to plik:
/etc/php5/apache2/conf.d/20-xdebug.ini
xdebug.remote_enable=1 xdebug.remote_port="9000" xdebug.profiler_enable=1
Taka konfiguracja w zupełności wystarczy, szczególnie musimy zapamiętać numer ustawionego portu. Przetestujmy teraz czy xdebug jest aktywny.