14. 11. 2005. | #1 |
Goran Pilipović
Sir Write-a-Lot
|
Debug PHP scriptova
Kako radite debug?
Mislim na onaj naprostiji, slozeniji i najkomplikovaniji. Imate neke alate ili pichite sa echo, print_r(), var_dump() ?
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
14. 11. 2005. | #2 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Moj slucaj:
Za najprostije provere dok pisem kod koristim: function dbg($var, $dontDie = false) { echo '<pre>Vartype: ' . gettype($var) . "\n" . htmlentities( print_r($var, true) ) . '</pre>'; if ( !$dontDie ) exit; } A za prijavu gresaka imam error_handler-a koji pljuje (na ekran, u bazu, na mail, u xml, gde mu kazem, tj. kako ga podesim) var_dump, backtrace i sva cuda kojih sam mogao da se setim. |
14. 11. 2005. | #3 |
Python Ambassador
Master
|
IMHO, jedan od definitivno boljih metoda debugovanja php-a sam video kod Ilije.
Nešto jako slično gorepomenutom sistemu je danas dobio i django(primer 404 i 500 greške).
__________________
Python Ambassador of Serbia |
14. 11. 2005. | #4 |
Direktor Kombinata
Invented the damn thing
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
|
To što je Petar video je prikaz izuzetka koji nije uhvaćen (predviđen). U PHP5 se može definisati funkcija (pomoću set_exception_handler()) koja hvata te izuzetke i obrađuje ih (u suprotnom se dobije klasičan Fatal error). Moja implementacija te funkcije prikazuje informacije o izuzetku (fajl, linija, dodatna polja...), trace i stanje sistemskih promenljivih ($_GET, $_POST, $_SESSION, $_COOKIE...). Ništa revolucionarno, ali sam se preporodio kad sam to napravio...
Za "lokalizovanje" greške koristim die() i var_dump() (tačnije, varijaciju na isti, ali poenta nije bitnije izmenjena). Iako Zend Studio ima ugrađen debugger nisam se navikao na njega (nisam se preterano ni trudio). Čekićanje, ali radi posao...
__________________
activeCollab - Project Management and Collaboration Tool iz domaće kuhinje | area51.rs - Blog |
15. 11. 2005. | #5 |
Super Moderator
Invented the damn thing
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
|
echo i var_dump mostly, Zend Studio kad prigusti
|
15. 11. 2005. | #6 |
expert
Expert
|
PHP kôd:
__________________
|
16. 11. 2005. | #7 |
Goran Pilipović
Sir Write-a-Lot
|
ja sam pravio neku funkciju bprint_f koja radi slično kao print_f sa tom razlikom što prikazuje tipove i veličine podaka pa sve u boji
output izgleda otprilike ovako: Kôd:
'sms' [array 5]: ( 'instance': CH9229 [string 6] 'username': dad10065 [string 8] 'password': 7PfRv4kU [string 8] 'command' [array 2]: ( 0: WEBSUBSCRIBE [string 12] 'attr' [array 2]: ( 'a': name [string 4] 'status': ok [string 2] ) ) 'parameters' [array 4]: ( 'attr' [array 1]: ( 'b': sisa [string 4] ) 'receiver' [array 2]: ( 0: +41795657570 [string 12] 'attr' [array 1]: ( 'operator': swisscom [string 8] ) ) 'service': DADAMOBILE [string 10] 'operator': swisscom [string 8] ) )
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
17. 11. 2005. | #8 |
Ivan Dilber
Sir Write-a-Lot
|
debug_backtrace zna da bude koristan kad treba provaliti redosled kojim se stiglo do te tacke, recimo kad provaljujes tudj kod pa ti nije jasna logika...
a inace print_r i echo obicno odrade posao... |
Alati teme | |
Način prikaza | |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Zend Studio debug problem | c_shark | PHP | 0 | 26. 04. 2010. 13:14 |
PHP DEbug platforma | Pedja | PHP | 0 | 08. 08. 2007. 00:21 |
HTTP debug alati - Fiddler i HttpSpy | DejanVesic | Web aplikacije, web servisi i software | 4 | 22. 10. 2005. 04:39 |