Layoutprobleme? - Styleswitcher!
![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| Hi, ich sitz ma wider an meinem Blog, fang aber grad neu an...in den alten code find ich mich nimmer rein Es geht (mal wieder) um den ErrorController (Exceptionshandler wäre wahrscheinlich passender). Es geht darum, das er alle Ausnahmen auffangen soll, die irgendwo im Ablauf auftreten. Danach soll eine Fehlerseite Produziert werden. Mein Prinzipielles Vorgehen wäre so: Request kommt -> Frontcontroller ---(routet zum Controller)-->View-->Ausgabe Nur irgendwo muss jetzt gewährleistet werden, das bei einem Fehlerfall nicht das normale Template angezeigt wird, sondern meine Fehlerseite... Ich steh irgendwie auf'm Schlauch |
| | |
| | Nach oben #2 |
| Martin Eisengardt Registriert seit: 30.03.2006 Ort: Pfinztal
Beiträge: 353
| PHP-Exceptions nutzen und die an geeigneter Stelle im Frontcontroller zu fangen. Anschliessend auf einen speziellen Fehlercontroller verzweigen. Wirft der auch nen Fehler hast nen Problem und gibts beispielsweise die("Alles kaputt!") aus. Prinzipiell macht es auch das Zend Framework so.
__________________ Open Sourcing the Online Gaming Universe PHP/SQL/Java/C++/Assembler. Seit Jahren Mitglied und Entwickler in einem der wohl größten Java-Projekte der Welt: http://weblogs.java.net/blog/hansmul...e_desktop.html |
| | |
| | Nach oben #3 |
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| Also als exceptions_handler nicht eine eigene klasse, sondern den FrontController registrieren. Der das wiederum an ne Errorklasse weitergibt?! |
| | |
| | Nach oben #4 | |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.048
| Zitat:
Ne Möglichkeit wäre, der Schnittstelle deiner Module eine eigene Error-Methode zu verpassen, wenn der Frontcontroller dann das Modul instanziert und ausführt (dispatch) und dort ne Exceptions fliegt, wird die im Frontcontroller abgefangen und automatisch die Error-Methode des jeweiligen Moduls aufgerufen (und die Exception mit übergeben). Dann kannst du in jedem Modul anders reagieren und wenn du eigene Exceptions schmeißt die dort auch für das Modul passend und global in einer Error-Methode verarbeiten. Wenn du eine Elternklasse für die Module hast, kannst du dort ja eine "Standard-Error-Methode" implementieren, für den Fall, dass du nicht extra für ein Modul eine "andere" ErrorMethode schreiben willst / brauchst Geändert von robo47 (15.04.2008 um 16:43 Uhr). | |
| | |
| | Nach oben #5 |
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| Das Problem ist, die Exception wird eigentlich nie in der Controller klasse geworfen, sondern in klassen wie zum Beispiel die verbindung zur DB oder sowas... da wollt ich einen globalen error handler registrieren, der sich dann um die verarbeitung kümmert. Wenn es ausgegeben werden soll, dann wird statt auf das aufgerufene Template auf ein errortemplate umgeleitet... |
| | |
| | Nach oben #6 |
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| Sorry für den Dopplepost, aber das passt in den alten nicht rein! Ich hab es jetzt erstmal so gelösst, das ich ein Application_Controller dazwischen schalte. Heißt, der aufruf in der Bootstrapper geht dann so: PHP-Code: PHP-Code: Mir geht es um init(); Dort hole ich mir aus dem Front_Controller den Request in Form eines Arrays: Code: array(4) {
["module"]=>
string(5) "index"
["controller"]=>
string(4) "test"
["action"]=>
string(3) "lol"
["QUERY_STRING"]=>
array(2) {
["GET"]=>
array(0) {
}
["POST"]=>
array(0) {
}
}
} Wenn jetzt irgendwo eine Exception geworfen wird, dann hab ich einen Error_Controller registriert, der sich um die Verarbeitung kümmert. Er wiederum manipuliert den Front_Controller, wenn die Exception ausgegeben werden soll. Das sieht dann so aus: PHP-Code: So mein Problem ist jetzt, das der Front controller zwar richtig manipuliert wird, aber in der init(); methode nicht das richtige ankommt. Ich denke ja, es liegt daran, dass der Application_Controller Singletone ist und dadurch die init() methode nicht wirklich neu aufgerufen wird, und den neuen request bekommt... hat da jemand ne idee wie ich es schaffe, das der Application_Controller den neuen Request bekommt? Geändert von Jann Hendrik (19.04.2008 um 13:42 Uhr). Grund: smily deaktiviert. Bitte beim nächsten Mal selbst drauf achten! |
| | |
| | Nach oben #7 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 745
| Warum liegt der FrontController hinter dem ApplicationController? Und warum willst du den Request manipulieren? Mein Vorschlag: PHP-Code: Basti Geändert von Basti (19.04.2008 um 23:19 Uhr). |
| | |
| | Nach oben #8 |
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| ok, ich bin noch nicht ganz mitgekommen. Also die buildContext Methode ist dafür da die aufgerufene adresse richtig zu routen? und danach zu entscheiden welcher Controller aufgerufen werden muss, oder wie? Und in der Run methode setzt du alles in einen try-catch block, da ja alle Exceptions innerhalb dieses blocks geworfen werden...stimmt! Danke basti! da kann ich mir was draus basteln! Vielen Dank!!! |
| | |
| | Nach oben #9 | |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 745
| Zitat:
Die Entscheidung, welcher Controller eingebunden wird trifft hier der ApplicationController aufgrund z.B. der Infos, die er aus dem Request zieht. Basti | |
| | |
| | Nach oben #10 | ||
| Gabriel Registriert seit: 27.09.2006 Ort: Radebeul
Beiträge: 378
| Zitat:
Mittlerweile funtkioniert es ziemlich gut! jetzt steh ich nur noch mit den header mehr oder weniger auf kriegsfuss. Aber das ist nur ne stilfrage bzw eine frage der codelänge... Danke!! kann man header auch so senden: PHP-Code: Ich mein, wenns nicht geht mach ich mir nen array mit diesen beschriebungen aber das wäre ja mehr arbeit^^ | ||
| | |
| | Nach oben #11 | |
| Neuer Benutzer Registriert seit: 18.08.2005
Beiträge: 9
| Zitat:
| |
| | |
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| PHP und das Observer-Pattern (MVC) | Ben | Anwendungsdesign / Softwarearchitektur | 14 | 26.05.2006 14:47 |
| MVC - Was darf die View | NewYork | Anwendungsdesign / Softwarearchitektur | 2 | 03.11.2005 22:42 |
| MVC, Strukturierung, Reaktion auf Events... | Ben | Allgemeine Java-Programmierung | 7 | 17.06.2005 16:34 |
| MVC Programmierung nur mit Klassen mit UI Endung? | Java17 | Desktop-Applikationen und Grafik | 5 | 14.03.2005 18:12 |
| MVC Architektur, GUI | Java17 | Desktop-Applikationen und Grafik | 3 | 03.03.2005 06:21 |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:29 Uhr.
Nach oben







