2012-03-28 14 views
1

Wie in der PHP-Dokumentation gezeigt ist es möglich, Ihre eigenen exception handler zu erstellen. Ich sehe dies als einen vernünftigen Weg, um mit meinen benutzergenerierten Fehlern und Ausnahmen während des gesamten Projekts, an dem ich arbeite, umzugehen. Durch Forschung habe ich eine ordentliche Menge an Fortschritt bei der Implementierung einer bestimmten, nur für eine Klasse gemacht, einschließlich Dinge wie die Verwendung ErrorException (von der ersten Antwort) und dafür sorgen, falsch für error levels, dass ich nicht umgehen kann zurückgeben.

Ich habe jedoch in eine Wand gerannt, um es generischer zu machen. Ich möchte nicht für jede Klasse, die ich schreibe, einen separaten Handler schreiben müssen (vor allem, weil die große Mehrheit dieses Codes für jeden gleich ist). Dennoch fühlt es sich schrecklich schlecht an, jeden einzelnen Fehler für das gesamte Projekt im selben Handler zu haben.

Am nächsten kam ich zu einer akzeptablen Lösung, indem ich eine Unterklasse von ErrorException für jede Klasse schreibe, in der ich die Fehler behandeln und Nachrichten in diesen speichern möchte. Aber selbst damit mache ich wahrscheinlich Fehler (ich glaube nicht, dass dies der richtige Ort wäre, um Standardfehlermeldungen zu speichern).

Gibt es eine allgemein akzeptierte Möglichkeit, dies zu tun, die ich nicht finden konnte? oder ist eine dieser Möglichkeiten tatsächlich die Art und Weise, wie es allgemein gemacht wird? Oder gibt es mehrere Lösungen, die basierend auf der Größe des Projekts skalierbar sind?Wie generische php Ausnahmehandler implementieren

EDIT: Nur realisiert, dass ich einen generischen Exception_Handler mit dem wiederverwendeten Code schreiben und für jeden Satz von Fehlern erweitern kann (echter Herp Moment für mich), aber es scheint immer noch wie ich sollte alle Fehler an der gleichen Stelle behandeln . Wenn ich völlig falsch liege, lass es mich wissen.

EDIT 2: Beschlossen, mit einer Konfigurationsdatei mit den Fehlermeldungen für jede Klasse, die Fehler wirft, gehen, definiert der Name der Klasse, die den Fehler auslöst, welche Konfigurationsdatei geladen ist, um die Liste der Nachrichten zu erhalten Fehlernummer. Dadurch kann ich auch einfach Nachrichten definieren, die protokolliert werden sollen, im Gegensatz zu Nachrichten, die an den Benutzer gesendet werden sollen (im Wesentlichen spezifische vs. allgemeine Nachrichten).

Ich denke, ich werde dies als beantwortet oder so etwas markieren, aber wenn ich etwas falsch mache, fühle mich frei, mich wissen zu lassen, Hilfe wird immer geschätzt.

Antwort

0

Entschieden, um mit einer Konfigurationsdatei zu gehen, die die Fehlermeldungen für jede Klasse enthält, die Fehler auslöst, dann definiert der Name der Klasse, die den Fehler auslöst, welche Konfigurationsdatei geladen wird, um die Liste der mit Fehlernummer verbundenen Nachrichten zu erhalten. Dadurch kann ich auch einfach Nachrichten definieren, die protokolliert werden sollen, im Gegensatz zu Nachrichten, die an den Benutzer gesendet werden sollen (im Wesentlichen spezifische vs. allgemeine Nachrichten).

Genauer gesagt werde ich wahrscheinlich eine Ini-Datei verwenden, die ein Array von Arrays definiert, wobei jede Nummer das Array von Fehlermeldungen für diese Fehlernummer enthält. Verwenden Sie dann eine foreach mit den geworfenen Fehlernummern, um die Fehlermeldung (en) zurückzugeben.

Verwandte Themen