| 

.NET C# Java Javascript Exception

0

Fehler gibt es leider in jedem größeren Programm. Webanwendungen bilden hier keine Ausnahme. Möglichkeiten zur Fehlersuche, wie sie aus Hochsprachen wie C++, Java oder C# bekannt sind, existieren für PHP nur ansatzweise.

Zwar existieren auch hier Debugger. Die Verwendung ist allerdings schwierig. Zudem laufen Webanwendungen auf entfernten Servern, ein Debugging ist hier aufwändig. Aus diesem Grund ist die Fehlersuche mit Ausgaben via echo-Befehl so populär wie eh und je. Die EZ Components liefern mit dem Debug-Paket interessante Funktionen zum Sammeln und Ausgeben von Informationen. Neben der formatierten Ausgabe von Fehlern und Problemen bieten Sie auch die Möglichkeit, Zeitmessungen vorzunehmen und eine Zusammenfassung der Skriptlaufzeit auszugeben:

$debug = ezcDebug::getInstance();
$debug->log( "Verbinde zu DB", 1 );
$debug->log( "DB verbunden", 1 );
echo $debug->generateOutput();

Durch Aufrufe der log-Funktion werden die Ausgaben gesammelt, aber noch nicht ausgegeben. Erst ein Aufruf von generateOutput liefert einen HTML-Code, der mit einem echo ausgegeben werden kann. Zur Aktivierung beziehungsweise Deaktivierung der Debug-Ausgaben, genügt es somit die echo-Zeile aus- beziehungsweise einzukommentieren. Dem log-Aufruf können zusätzliche Parameter mitgegeben werden, mit denen man die Ausgaben besser in einzelne Fehlerbereiche unterteilen kann. Wer die Fehlermeldungen nicht im Webbrowser des Benutzers ausgeben möchte, dem steht mit der EventLog-Komponente zusätzlich die Möglichkeit zur Verfügung, Einträge in eine Log-Datei zu speichern.

Um bei langsamen Skripten herauszufinden, wo der Flaschenhals steckt, sind die Timer-Funktionen des Debug-Paketes hilfreich. Dazu gibt es die Möglichkeit den Start- und Endpunkt der Zeitmessung festzulegen. Funktionsaufrufe speichern die Zeit an einer bestimmten Quelltextstelle. Auch hier erfolgt eine Ausgabe der Zusammenfassung erst nach kompletter Abarbeitung und explizitem Funktionsaufruf. Anhand der Ausgaben kann anschließend schnell beurteilt werden, an welchen Stellen wie viel Zeit verbraucht wurde.

$debug = ezcDebug::getInstance();
$debug->startTimer( "Connect", "DB
access" );
echo "test1<br>";
$debug->switchTimer("Query", "Connect");
echo "test2<br>";
$debug->switchTimer("Disconnect",
"Query");
$debug->stopTimer( "Disconnect" );
echo $debug->generateOutput();

Im Vergleich zu anderen Benchmark-Bibliotheken wie PEAR:Benchmark ist die Anwendung der Timer-Funktionen der EZ Components umständlicher. Allerdings bietet die Debug-Klasse sehr ausgefeilte Möglichkeiten, die Performance eines Skriptes zu dokumentieren. Allein die Möglichkeit, die Timer rekursiv anzuwenden, gibt Skript-Entwicklern eine sehr mächtige Funktion an die Hand, um das Verhalten von Programmteilen zu untersuchen.

web php
Schreibe einen Kommentar:
Themen:
php web
Entweder einloggen... ...oder ohne Wartezeit registrieren
Benutzername
Passwort
Passwort wiederholen
E-Mail