23.03.2007
PHP: Fehlermeldungen sammeln und ausgeben
Es gehört zur Programmierung, dass man ixfach Fehler-Szenarien abdecken und abwehren muss, bei denen sich der Programmierer vertippt, der User Fehleingaben macht oder Installationen unvollständig sind. Die Ausgabe von Fehlermeldungen ist also Täglich Brot.
Als Lernende gehe ich natürlich für den erfahrenen Programmierer längst ausgetretene Pfade. Für andere Lernende, die meinen Stand haben, mag es aber so wie für mich hilfreich sein, wenn man diese Pfade einfach noch einmal zu fuß geht. So einen Pfad habe ich heute angefangen. Optimierung von der Ausgabe der Fehlermeldung
function errm($emx,$param1,$param2){$em = array();//Fehlermeldungen sammeln:$em[0] = "Tippfehler im Pfad bzw. Dateinamen oder $param1 in $param2 existiert nicht";//Fehlermeldungen ausgebenecho $em[$emx];}
An der Stelle wo nach “param1 in param2″ gesucht wird:
$settingsFile = file_exists($rf.'settings.php') ? include($rf.'settings.php') : errm(0,'settings.php','admin/') ;
Der zweite Teil nach dem Fragezeichen (if-Shorthand [-1-][-2-]), wenn als das vor dem Doppelpunkt nicht eintrifft ruft die Funktion aus:
- ‘0′ ist die Nummer der Fehlemeldung, denkbar wäre auch ein sprechender Key für den Fehler-Array, man sollte sich hier nur entscheiden (entweder oder), denke ich.
- ’settings.php’ ist param1. Was param1 jeweils ist (Verb, Dateiname, Pfad, Variable …), hängt vom jeweiligen Satz ab.
- ‘admin/’ ist param2. Was param2 jeweils ist wie schon bei param1 abhängig von der Fehlermeldung selbst, also keine feste Regel. Allenfalls, dass in der Fehlermeldung param1 vor param2 kommt.
Jetzt wäre es noch schön, wenn ich wüsste, wie ich die Parameter optional in die Function zoomen könnte. so dass wenn kein Parameter gebraucht wird, man auch nicht daran denken muss und sollte Ausnahmsweise mal mehr als zwei Parameter benötigt werden, dass man eben soviele Parameter anhängen kann, wie diese Fehlermeldung verarbeiten muss.
Es ist auf alle Fälle für mich schon der Clou, das ich nun der Funktion errm() textbausteinmäßig viele Fehlermeldungen zusammenfassen kann und mir viel viel Tipperei spare. Für eine ‘Faule Sau’ wie mich unerlässlich.
Update: Ein wenig nachgedacht … (voila): über Arrays und schon hat man die Lösung, wie man in die Funktion eine beliebige Zahl Variablen zoomt:
function echoError($emx,$param){$em = array();$param = split(',',$param);$em[0] = "Tippfehler im Pfad bzw. Dateinamen oder $param[0] in $param[1] existiert nicht";echo $em[$emx];}- Fehlerausgabe-Syntax im Skript:
$thisError = echoError(0,'parameter1,parameter2');
echoError() ist ein sich selbst erklärender Funktionsname und man muss weniger in die Doku schreiben, weil selbsterklärend …
optional wäre auch logError() ok, wenn man den Fehler nicht nur ausgibt, sondern in ein Logfile inklusive Timestamp wegschreibt.
Filed under: Programmierung
1 Comment
April 11th, 2007 at 19:39
[...] Auch beginnt eine Sammlung von kleine Skripten sich in die Arbeit einstellen, wie, z.B. die Funktion callError [...]