| | | | |
| |||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
| | LinkBack | Themen-Optionen | Thema bewerten |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | ||||
| Erfahrener Benutzer | Naja bleibt die Frage offen von welchen Validierungen du hier überhaupt redest. Zitat:
Zitat:
Zitat:
zu b) kann man durchaus im Model machen, da könntest du an die Modelmethode ein Request Objekt übergeben und dann einen Forward oder Redirect zu einem Error Action Conroller machen der dir dann deine jeweilige / n Error Message / s über ein Action View ausgibt. zu c) Das sollte man mMn unbedingt im Model machen weil man da ja genau an dem Datenspeichermedium Prüfungen vornimmt, aber auch muss das Request Object an deine Modelmethode z.B. via DI übergeben werden. Die Frage hier ist natürlich ob ein Request Object etwas im Model bzw. einer Model Methode zu suchen hat.
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de Geändert von litterauspirna (28.09.2011 um 15:27 Uhr). | |||
| | |
| | |
| Erfahrener Benutzer | zu a) Da würde ich teilweise widersprechen. ABER: Ich tendiere eher zu einer zusätzlichen Business-Schicht, die viele Validierungen übernimmt. Das Model selbst ist hingegen relativ dumm. Das hat vor allem den Hintergrund, dass ich eher modular und SOA-orientiert die Persistenzschicht anspreche und nicht von Controller ausgehend direkt in einem Model herumfurwerke. Das hat auch den Vorteil, dass unterschiedlichste Controller (HTML, Ajax, SOAP) nicht alles doppelt und dreifach implementieren müssen.
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| | |
| | |
| Erfahrener Benutzer | Warum und in welchen Bezug? Ich bin ja auch immer am dazu lernen und da würde mich die Aussage dann begründet schon interessieren. Danke schon mal dafür. Mit der zusätzlichen Buiseness Schicht meinst da damit Helfer Klassen?
__________________ Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir. http://www.lit-web.de |
| | |
| | |
| Erfahrener Benutzer | Eine Begründung habe ich ja bereits gegeben. Es gibt u.U. mehrere Controller, die am gleichen Modell herumfurwerken. Beispielsweise pfuscht die Registrierung am "User-Objekt" herum, es pfuscht der Admin-Bereich am User herum. Vielleicht gibt es noch einen Open-ID-Login. Es gibt vielleicht eine programmierbare XML-Schnittstelle, die von einer iPhone-App bedient wird. Und bevor ich an 5 verschiedenen Ecken die Länge des Benutzernamens auf 50 Zeichen begrenze wandert das viel lieber in eine zentrale Ecke. Das sieht dann (in Prosa) folgendermaßen aus: Code: Client -> Server: Tu mal registrieren Server -> Controller: Tu mal Anfrage verarbeiten Controller: Aufbereten der Daten aus dem Request und aus dem Formular, Nicht-Modell-bezogene Prüfungen (Beispielsweise Häckchen AGB) Controller -> Business-Helferlein: Lege mal Benutzer an bitte Business-Helferlein: Benutzername valide? Benutzername doppelt? Business-Helferlein -> Persistenz: Alles OK, dann tu mal abspeichern Ich persönlich habe diese Businness-Schicht im Sinn von Services. Dort gibt es dann in der UserService-Klasse eine Methode "createUser". azu gibt es Request- und Response-Klassen (einfache Container sind das). Im Response ist zudem eine Vererbung zu einer Basis-Response-Klassen. Fehler sollen von der Business-Klasse immer mittels eines Codes zurückgegeben werden. So wird dann in etwa folgendes aus Sicht des Controllers daraus: PHP-Code:
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| | |
| | |
| Erfahrener Benutzer | Oh doch, das ist durchaus eine mögliche Lösung dafür. Guck dir meinen zweiten Beitrag noch einmal genau an ![]()
__________________ www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Der Client adressiert mit seinem Request (Form Submit) als Nachricht den Controller Dieser weist das Model an, anfallende Formdaten zu validieren. Je nach Erfolg wählt er eine geeignete View an oder stößt einen Subcontroller für eine Folgeaktion aus. Betrachtet man das MVC als Pattern der Präsentationsschicht, dann stellt für mich das Model die Gesamtheit der Struktur- und Geschäftslogik des Forms dar, während die View die Art der Darstellung bestimmt.
__________________ -- One pixel is still too big. Please make it smaller. ASAP. Initiative Mittelstand. Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers. -- |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] Zip Archive mit PHP erstellen - Kein Fehler, aber ZIP Archiv ist nicht da | robat | PHP Tipps 2010 | 34 | 09.03.2011 20:17 |
| [Erledigt] session_start - Fehler | Schmuse | PHP Einsteiger | 6 | 03.03.2011 13:42 |
| Sqlite3 "Update", Fehler bei mehr als 1 "Set" Anweisung | skerge12 | Datenbanken | 4 | 21.12.2010 09:45 |
| Funktion rename() auf USB-Festplatten bringt Fehler | Wing | PHP Tipps 2010 | 13 | 16.07.2010 23:00 |
| MySQL: Fehler 10046 keine Datenbank ausgewählt | aschunk | Datenbanken | 5 | 22.04.2010 12:27 |
| [Erledigt] Syntax Error - Wo ist der Fehler? | Extremefall | PHP Tipps 2009 | 5 | 14.12.2009 17:46 |
| [Erledigt] vista, windows update Fehler 80070422 | Screeze | Off-Topic Diskussionen | 3 | 23.09.2009 18:24 |
| Zend_Controller_Router_Route routet nach der View | boolean | PHP-Fortgeschrittene | 10 | 13.08.2009 11:12 |
| [Erledigt] Fehler bei Array ausgabe | newWorldOrder | PHP Tipps 2009 | 2 | 23.02.2009 17:29 |
| [Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar | PHP-Fortgeschrittene | 19 | 31.05.2005 14:52 | |
| Blöder MySQL Fehler | PHP Tipps 2005 | 3 | 15.05.2005 03:14 | |
| Fehlermeldung - aber kein fehler... | Tschuu | HTML, Usability und Barrierefreiheit | 16 | 14.03.2005 15:56 |
| Wo liegt der fehler?? | PHP-Fortgeschrittene | 5 | 22.12.2004 09:54 | |
| array_push nur in begrenzter Anzahl ausführen ? | PHP Tipps 2004 | 2 | 07.09.2004 09:05 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| php model, personen richtig fotografieren |