echo ‘dupa’

czwartek, 27 marca 2008

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.

mini.jpg

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.

Społeczność: Powiązane posty:

Komentarze

  1. Paweł Krefta

    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 ;)

  2. Hubert Marzec

    @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.

  3. Paweł Krefta

    Do devu fajne rozwiazania to class ShortCut::d() itp itd :) A duzo tego nie moze, bo mozna sie pogubic :)

  4. wowo

    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.

  5. rafu

    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.

  6. Marcin Kłeczek

    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.

  7. deallas

    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.

  8. noofaq

    ja preferuję ‘asdasd’ i podobne kombinacje ;)

  9. slowika

    Ja używam echo ‘pp’; ponieważ klawisz p jest najbliżej apostrofu.

Dodaj komentarz