php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.10.2010, 23:23  
Benutzer
 
Registriert seit: 21.02.2010
Beiträge: 70
PHP-Kenntnisse:
Fortgeschritten
d0ne befindet sich auf einem aufstrebenden Ast
Standard View | Controller | .. wohin mit Errors?

Hallo,

ich bin mir im Moment bei einer Frage zur Ausgabe von Error-Nachrichten an den User nicht sicher, wie das "richtig" zu realisieren ist.

Ich möchte Controller und View trennen und das ist bei der normalen Anzeige einer Seite auch kein Problem, aber wie gehe ich mit Fehlermeldungen "Falsche Userdaten" um?

Mein Problem ist, dass ich nicht genau weiß, wo ich Nachrichten festlegen soll.
Wenn ich sie ins View setzte müsste ich ja immer abfragen, ob sie angezeigt werden sollen und hätte Somit Logik im View, enthält der Controller die Texte, gäbe es den umgekehrten Fall.

Gibt es dafür schöne Lösungsansätze?

mfg
d0ne
d0ne ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.10.2010, 02:11  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Der Controller validiert die Eingaben und sammelt die Fehlercodes, Meldungen, was auch immer und übergibt diese an die View als "zur Ausgabe bereite" Daten.

Die View muss nur noch prüfen ob Meldungen übergeben wurden und diese ausgeben.

Wo ist das Problem? Letzteres lässt sich sogar problemlos ins Template püacken ohne das man sagen kann es wäre zu viel Logik dorthin übertragen worden.,
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 16.10.2010, 03:05  
Erfahrener Benutzer
 
Registriert seit: 23.08.2010
Beiträge: 495
PHP-Kenntnisse:
Fortgeschritten
mimomamu sorgt für eine eindrucksvolle Atmosphäremimomamu sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von d0ne Beitrag anzeigen
... aber wie gehe ich mit Fehlermeldungen "Falsche Userdaten" um?
Das ist keine Fehlermeldung, sondern übliches Feedback. Du solltest dafür den selben Weg verwenden, den du auch verwendest um den Benutzer über korrekte Userdaten zu informieren.
__________________
Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden
mimomamu ist offline   Mit Zitat antworten
Alt 16.10.2010, 11:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

DU kannst auch jede Nachricht als View gestalten. Kommt drauf an.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 16.10.2010, 12:45  
Erfahrener Benutzer
 
Registriert seit: 25.05.2010
Beiträge: 852
PHP-Kenntnisse:
Anfänger
Trainmaster wird schon bald berühmt werden
Standard

Globale Fehlermeldungen fange ich mit einem eigenen View ab. Fehlermeldungen bei falschen Benutzereingaben (z.B. Formular) müssen natürlich innerhalb des jeweiligen Controllers verarbeitet werden. mimomamu hat es eigentlich korrekt beschrieben.
Trainmaster ist offline   Mit Zitat antworten
Alt 16.10.2010, 15:52  
Benutzer
 
Registriert seit: 21.02.2010
Beiträge: 70
PHP-Kenntnisse:
Fortgeschritten
d0ne befindet sich auf einem aufstrebenden Ast
Standard

Dann steht im Controller:
if(login()) {
$view->msg= 'erfolgreich eingeloggt.';
} else {
$view->msg= 'Logindaten falsch.';
}

Aber wenn ich jetzt hingehe um die Meldungen zu ändern (welche View sind) muss ich in den Controller - das ist doch falsch?
Wenn ich jetzt für jede Meldung ein View erstelle (meintest du das nikosch?) hätte ich doch schnell sehr viele Views mit nur einer Zeile Text ...

Wenn ich nur Meldungen habe ist vll. sogar mit dem Controller noch in Ordnung, aber wenn ich z.B. möchte, dass bei Fehlern ein div mit rotem Rahmen um das Feedback ist kann ich doch nicht im Controller $view->msg = '<div class="mitRotemRahmen">'; schreiben!?
d0ne ist offline   Mit Zitat antworten
Alt 16.10.2010, 16:35  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Zitat:
Zitat von d0ne Beitrag anzeigen
Wenn ich nur Meldungen habe ist vll. sogar mit dem Controller noch in Ordnung, aber wenn ich z.B. möchte, dass bei Fehlern ein div mit rotem Rahmen um das Feedback ist kann ich doch nicht im Controller $view->msg = '<div class="mitRotemRahmen">'; schreiben!?
Nein, eher so etwas wie
PHP-Code:
$view->addMsg(new ErrorMessage('Fehler!'));
$view->addMsg(new InfoMessage('hier bitte keinen roten Rahmen')); 
Um den roten Rahmen kann sich dann der View entsprechend kümmern.

Und wenn du die Texte nicht im Controller haben willst, überlege dir lieber gleich etwas in Richtung i18n (z.B. gettext). Auch wenn du die Texte letztlich nur in einer Sprache brauchst, hast du sie so schön vom Code separiert.
fab ist offline   Mit Zitat antworten
Alt 16.10.2010, 21:43  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.630
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

Bzw. nehm das Model dazu und lege eine Speicherung der Meldungen extern fest.

Benutze dann Fehlercodes mit denen der Controller vom Model die Fehlermeldung beziehen kann und weise diese Meldung an die View zu.

Dann musst du nur dne Datenbestand des Models abändern wenn du die Fehlermeldungen ändern willst.
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 18.10.2010, 14:58  
Benutzer
 
Registriert seit: 21.02.2010
Beiträge: 70
PHP-Kenntnisse:
Fortgeschritten
d0ne befindet sich auf einem aufstrebenden Ast
Standard

Danke für die Antworten, leider habe ich bis jetzt nie wirklich MVC programmieren können und daher auch kaum Erfahrungen. Ich werde einfach mal weiter basteln und dann das Beste mitnehmen.

Kennt jemand vll. noch ein Open Source Projekt, das man von der Controller/View-Struktur zu empfehlen ist, also bei dem man sagen kann "so macht man das/so ist das gut", bei dem ich dann "abgucken" könnte?
d0ne ist offline   Mit Zitat antworten
Alt 18.10.2010, 15:52  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

In Zend verwendest du für Nachrichten dieser Art einen MessageHelper, also einen Container für die Nachrichten. Dort legst du die Art fest (Fehlermeldung, Hinweis, Erfolgsnachricht, etc.) und gibst diese im View aus. Wie nikosch sagte, kannst du für die Ausgabe des MessageHelper einen eigenen View verwenden.

Was du mit "Aber wenn ich jetzt hingehe um die Meldungen zu ändern" meinst verstehe ich nicht so ganz.

PHP-Code:
<?php
// Controller
if ($form->submit($this->_request->getPost())) {
  
$this->_helperSaveForm($form->getValues()));
  
$this->_redirect("success.php");
} else {
  
$this->_messageHelper->addErrorMessages($form->getErrorMessages());
}

// View
$this->_messageHelper->display();
?>
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
cakePHP View Abstraktion Deltachaos Software-Design 6 08.10.2010 15:20
Controller inkl. oder exkl. Action stayInside Software-Design 59 28.09.2010 07:50
phpdoc view notyyy PHP-Fortgeschrittene 7 07.09.2010 20:12
Frage zu CMS/MVC VampireSlayer Software-Design 18 01.06.2010 12:16
[Erledigt] Swiftmailer Fatal Errors sinnvoll!? d0ne PHP-Fortgeschrittene 2 21.04.2010 16:44
Model view controll Leberwurstbrot PHP Tipps 2010 14 05.03.2010 18:14
Template System -> View in PHP Floid PHP-Fortgeschrittene 12 22.11.2009 11:58
Controller Hierarchie Dark Guardian Software-Design 18 27.10.2009 13:22
Componenten Controller Cout Software-Design 3 26.09.2009 00:59
Zend_Controller_Router_Route routet nach der View boolean PHP-Fortgeschrittene 10 13.08.2009 11:12
Mehrere Controller auf einer Seite fat32 Software-Design 6 27.07.2009 16:55
View vs. Join dsmcg Datenbanken 8 17.03.2009 07:58
Welche Information bekommen die einzelnen MVC-Elemente? Zergling-new PHP-Fortgeschrittene 14 06.10.2007 16:59
cms selber machen. tipps / dateistruktur Promaetheus PHP Tipps 2007 31 16.03.2007 19:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php view controller, php controller, viewmsg, nur div in view mittels controller ändern, errors sammeln php, php controller schreiben

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:11 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum