PHP nie jest idealne i od czasu do czasu pojawia się biały ekran śmierci. I nic nie pomoże error_reporting(E_ALL), dalej widzimy pusty ekran. Jedyne co pozostaje to stare dobre echo 'dupa', które trzeba umieszczać w kolejnych sekcjach kodu, szukając miejsca wystąpienia błędu.
Sam udoskonaliłem tę metodę do postaci echo 'd'. Czasami jednak potrzebowałem więcej informacji o zmiennych. Z pomocą przyszedł print_r umieszczony między znacznikami pre, co pozwalało na wyświetlanie zagnieżdżonych tablic. Jednak to nie było to, czego szukałem.
W końcu znalazłem dBug autorstwa Kwaku Otchere. W zagnieżdżonych tabelkach dBug wyświetla tablice, obiekty, xml’a. Wszystko pokolorowane zgodnie z typami danych.
Wystarczy krótki kod new dBug($yourVariable) i wszystko ładnie się wyświetla. Ponieważ mimo wszystko ten zapis był dla mnie za długi i pozostał sentyment do echo ‘dupa’. Stworzyłem pomocniczą funkcję d():
/**
* Debug
* @see echo 'dupa';
* @param mixed $var
*/
function d($var) {
new dBug($var);
}
Użycie pojedynczej litery dla nazwy funkcji kłóci się z ogólnie przyjętymi zasadami nazewnictwa, jednak w przypadku funkcji pomocniczej można zrobić wyjątek. W javascripcie również używam takiego samego strutu d(), co jest bardzo wygodne i przyspiesza pisanie kodu.
Dodaj mój rss to swojego czytnika.


Saturday, March 29, 2008 12:40 am
Debugowanie przez dupczenie nie starzeje sie i tak :D choc podobno kazdy ma swoje ulubione slowo :)
PS. Co do nazewnictwa - nie zawsze cos zgodne z zasadami oznacza wygodne ;)
Saturday, March 29, 2008 1:50 am
@Paweł Krefta masz racje, że standard != wygoda. Używam jeszcze paru innych jedno literowych funkcji (np. _p() w szablonie ZendFramework dla wyświetlenia ścieżki bazowej). Ale bardzo sceptycznie podchodzę wprowadzania ich w większej ich ilości.
Saturday, March 29, 2008 4:40 pm
Do devu fajne rozwiazania to class ShortCut::d() itp itd :) A duzo tego nie moze, bo mozna sie pogubic :)
Monday, February 4, 2008 5:06 pm
Polecam jeszcze xdebug , który nadpisuje standardowego var_dumpa i ładnie go koloruje. Działało mi to jak używałem apacha w Windowsie, niestety pod linuksem kolorowanie mi znikło i nie chce wrócić ;-) Generalnie xdebug ma mnóstwo innych możliwości i jest niezastąpiony do debugowania i testowania.
Friday, June 27, 2008 10:34 pm
A ja serdecznie polecam http://www.firephp.org/Wiki/Reference/CustomizeDisplay
Ładnie dampuje zmienne do firebuga a dane przesyła w nagłówkach. Zmienne tablicowe czy obiekty są wygodnie “podrzewkowane” a i nie brudzą HTMLa dzięki czemu stronki ajaksowe czy też xmlowe nie wywracają się przy zrzucaniu zmiennych.
Saturday, August 30, 2008 11:30 am
Cóż, żaden z was nie wspomniał o PEAR var_dump - który również dość ciekawie wyświetla tabelki. Ja jednak preferuję przechwytywanie błędów i zapisywanie do pliku/db, a wyświetlanie tylko w ukrytej warstwie (którą można odkryć po kliknięciu magicznego przycisku) - z obawy, żeby nie przestraszyć użyszkodnika.
Thursday, September 18, 2008 1:01 pm
hehe;D Z tym “echo ‘dupa’” to jakby z mojego życia wzięte:P Zawsze jak mi sie wykracza biały ekran to tylko jedno słowo przychodzi mi na myśl to to które zapisuje w echu.
Friday, September 12, 2008 1:11 pm
ja preferuję ‘asdasd’ i podobne kombinacje ;)
Tuesday, June 16, 2009 12:46 pm
Ja używam echo ‘pp’; ponieważ klawisz p jest najbliżej apostrofu.