Zend Framework Forum Right Header

Zurück   Zend Framework Forum > Sonstiges > Faq/Howto

Antwort
 
Themen-Optionen Ansicht
Alt 06.01.2008, 21:06   #1
francois
 
Benutzerbild von francois
 
Standard MVC (Model – View – Controller) im Zend Framework

Hallo,

wie schon mal geschrieben, ich bin gerade dabei mich ins Zend Framework einzuarbeiten.
Dabei habe ich das Wochenende genutzt mir das Zend Framework unter
der Nutzung des MVC Konzepts anzusehen und dabei das gleich nieder zu schreiben.

Denke das das ein guter - theoretischer - Einstieg ins Framework darstellt.

MVC (Model – View – Controller) im Zend Framework

Grüße Francois

PS. Falls da einem alten Hasen ein Fehler auffallen sollte - bitte melden. Danke!
francois ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:37   #2
Bleistift
 
Benutzerbild von Bleistift
 
Standard

Soweit so schl... äh gut
Zitat:
Zuständigkeit der View:
Anzeige von Daten (aus dem Model)
Klingt für mich so, als würde die View-Ebene direkt das Model ansprechen. Dies ist allerdings nicht so (meines Erachtens). Die View-Ebene bekommt seine Daten aus dem Controller (welcher die Daten wiederum möglicherweise aus dem Model hat).
Weiter unten steht es dann ja auch:
Zitat:
View <- Model: View greift auf Daten aus dem Model zu, greift aber oft nicht direkt auf das Model Objekt zu, sondern nur auf die reinen Daten.
Wobei die Darstellung wieder widersprüchlich (herrliche Alliteration ) ist. Besser:
Model <-> Controller -> View

Viel weiter hab' ich nicht gelesen
__________________
Moderator
Kein Support via Foren-PN
Bleistift ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:39   #3
Daniel84
 
Benutzerbild von Daniel84
 
Daniel84 eine Nachricht über ICQ schicken Daniel84 eine Nachricht über Skype™ schicken
Standard

Der Controller nimmt Benutzereingaben an und gibt diese dann an das Model und nicht die View weiter. Anhand des Ergebnissen welches vom Model kommt wird die entsprechende View selektiert
Daniel84 ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:43   #4
Daniel84
 
Benutzerbild von Daniel84
 
Daniel84 eine Nachricht über ICQ schicken Daniel84 eine Nachricht über Skype™ schicken
Standard

@Bleistift. Das stimmt schon so. Die View darf und soll auch auf das Modell zugreifen. Aber nur lesend.
Allerdings ist im Zend FW unglücklich gemacht, da Views und Templates zusammenfallen.

Es gibts allerdings zigtausend unterschiedliche Interpretationen des MVC's die unterschiedliches Aussagen.

Am besten also auf Martin Fowler dem Design Pattern "Gott" vertrauen


http://martinfowler.com/eaaCatalog/m...ontroller.html
Daniel84 ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:45   #5
Bleistift
 
Benutzerbild von Bleistift
 
Standard

Ok... Wenn ich in der View-Ebene dann z.B.
PHP-Code:
foreach($this->meinModel->find(2)): 
habe, ist das ja in gewisser Hinsicht immer noch lesend. Ich würde so etwas aber umbedingt vermeiden.
__________________
Moderator
Kein Support via Foren-PN
Bleistift ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:54   #6
Daniel84
 
Benutzerbild von Daniel84
 
Daniel84 eine Nachricht über ICQ schicken Daniel84 eine Nachricht über Skype™ schicken
Standard

das stimmt. weil du dich nicht nur in der view ebene befindest sondern auch direkt im template. und da gehört es auf keinen fall hin. normaler weise gehört da noch nen richtiger view layer zwischen, welche die benötigten daten aus dem model holt, das entsprechende template auswählt und darin nur variablen setzt.

view gesagt im ZF ist unglücklich gelöst da view und template eins sind.
Daniel84 ist offline   Mit Zitat antworten
Alt 06.01.2008, 21:58   #7
Bleistift
 
Benutzerbild von Bleistift
 
Standard

Wenn ich dich richtig verstanden habe, ist beim ZF eigentlich der Controller ein Teil der View bzw. übernimmt dessen Aufgabe und das was ich View nenne ist nur noch das Template (und evt. noch Helper)?
__________________
Moderator
Kein Support via Foren-PN
Bleistift ist offline   Mit Zitat antworten
Alt 06.01.2008, 22:01   #8
francois
 
Benutzerbild von francois
 
Standard

Zitat:
Zitat von Bleistift Beitrag anzeigen
Klingt für mich so, als würde die View-Ebene direkt das Model ansprechen. Dies ist allerdings nicht so (meines Erachtens). Die View-Ebene bekommt seine Daten aus dem Controller (welcher die Daten wiederum möglicherweise aus dem Model hat).
Ja, das ist auch so laut Wikipedia und einigen anderen Quellen.
Das rührt daher, das das MVC Modell ja richtig mit MS Visual Studio (Version 5?) populär wurde und da hinter einer Schaltfläche (aus der View) das Model gesteuert / angesprochen wurde.

Ich denke das ist ein Mitgrund warum hier öfter Fragen auftauchen...

Zitat:
Zitat von Bleistift Beitrag anzeigen
Weiter unten steht es dann ja auch
Genau, getrennt von Fenster-Applikation und Web-Anwendung...

Zitat:
Zitat von Bleistift Beitrag anzeigen
Wobei die Darstellung wieder widersprüchlich (herrliche Alliteration ) ist. Besser:
Model <-> Controller -> View
Stimmt, viel besser...
Werde ich übernehmen - wenn ich darf?


Zitat:
Zitat von Daniel84
Der Controller nimmt Benutzereingaben an und gibt diese dann an das Model und nicht die View weiter. Anhand des Ergebnissen welches vom Model kommt wird die entsprechende View selektiert
Stimmt nur bedingt.
Ich kann natl. Benutzereingaben direkt an die View weitergeben.
Also direkt aus dem Request-Objekt - es muss nicht erst durch das Model.

Aus Sicherheitsgründen sollte es natl. nicht unbedingt ungefiltert durchgereicht werden...

Beispiel: Ich habe ein Formular, ein Request und belende das Fromular + Benutzereingaben ein, weil ein Mußfeld leer ist.

Zur View-Auswahl:
Auch das muss nicht sein aber es kann.
Denn ich brauche ja nicht unbedingt die Werte des Models um eine View auszuwählen.
francois ist offline   Mit Zitat antworten
Alt 06.01.2008, 22:04   #9
francois
 
Benutzerbild von francois
 
Standard

Zitat:
Zitat von Bleistift Beitrag anzeigen
Wenn ich dich richtig verstanden habe, ist beim ZF eigentlich der Controller ein Teil der View bzw. übernimmt dessen Aufgabe und das was ich View nenne ist nur noch das Template (und evt. noch Helper)?
Ich würde es so formulieren:
Die Zend_View ist der Parser der Templates ("View Scripts").

Das der auch einen direkten Zugriff erlaubt ist sicher nicht der Sinn der Sache aber es ist flexibel
francois ist offline   Mit Zitat antworten
Alt 06.01.2008, 22:04   #10
Bleistift
 
Benutzerbild von Bleistift
 
Standard

Ich glaube der Artikel ist recht hilfreich, nicht nur für totale Anfänger

Zitat:
Zitat von francois Beitrag anzeigen
Werde ich übernehmen - wenn ich darf?
Ja, klar
__________________
Moderator
Kein Support via Foren-PN
Bleistift ist offline   Mit Zitat antworten
Alt 06.01.2008, 22:07   #11
francois
 
Benutzerbild von francois
 
Standard

Zitat:
Zitat von Daniel84 Beitrag anzeigen
@Bleistift. Das stimmt schon so. Die View darf und soll auch auf das Modell zugreifen. Aber nur lesend.
Allerdings ist im Zend FW unglücklich gemacht, da Views und Templates zusammenfallen.

Es gibts allerdings zigtausend unterschiedliche Interpretationen des MVC's die unterschiedliches Aussagen.

Am besten also auf Martin Fowler dem Design Pattern "Gott" vertrauen


http://martinfowler.com/eaaCatalog/m...ontroller.html
Danke Dir für den Link, dachte immer das rührt wirklich aus den Fenster-Anwendungen die man beispielsweise unter MS Visual Studio entwickelt hat.
Dabei ist das ja "alter" Senf -> 1970
francois ist offline   Mit Zitat antworten
Alt 06.01.2008, 22:25   #12
francois
 
Benutzerbild von francois
 
Standard

Zitat:
Zitat von Bleistift Beitrag anzeigen
Ja, klar
Ok, habs geändert...
Hab auch folgendes angemerkt:

Model -> Controller <-> View
Die View greift - idealerweise - auf die Daten aus dem Model nur zu,
wenn der Controller diese übergeben hat,
dadurch entsteht keine direkte Kommunikation zwischen Model und View.


So sollte es ja sein, auch wenns auch anders geht...
francois ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Ansicht

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 anzufügen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Programmierstil, was ins Model, was in Controller Kamephis Einsteigerfragen 18 10.12.2007 02:38
Wie nutze ich Model und Controller am besten? dhenninger Einsteigerfragen 1 15.08.2007 15:40
Controller oder Model, das ist hier die Frage stun MVC 3 23.07.2007 17:02
Debugproblem mit Zend Platform und Zend Framework har1974 IDE's, Debugging & Profiling 2 03.05.2007 07:43
Vom Model aus auf Funktion im Controller Zugreiffen smeier Einsteigerfragen 6 04.01.2007 14:18


Powered by vBulletin® Version 3.6.12 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:56 Uhr.
Webdesign, CMS, Internet Anwendungen mit Zend
Framework aus Darmstadt, Frankfurt, Rhein-Main

presented by omoo

Skin Design Provided By Talk vBulletin