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:
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.
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.
webphp
Diskutiere in der Lounge
Entspanne in der codekicker Lounge und diskutiere über aktuelle Themen mit anderen codekicker-Usern!
Das PHP-Journal vermittelt praxisrelevantes Wissen für Entwickler von Web-Applikationen, für Content- und Online-Manager, Agenturen und Webmaster. Neben Praxisartikeln zu Programmiertechniken und Schnittstellen werden im PHP-Journal auch angrenzende Themen wie modernes Webdesign mit AJAX, Aufbau und Betrieb von Web 2.0-Communities und erfolgreiches Online-Marketing zum Beispiel über Suchmaschine-Optimierung behandelt.