Direkt zum Hauptbereich

re:publica 2017

re:publica 17 #LoveOutLoud

ZendFramework 2: Wo geht's in den View? 004

In der letzten Folge hatten wir uns ja mit der Layout-Datei befasst und am welchem Punkt der eigentliche View dann eingebunden wird.

An diesem Punkt kommen auch dann die Controller endlich ins Spiel, die dem ganzen als Manager des Systems Leben einflößen und doch oft merkwürdig leer und simpel wirken.

Das kann einem als Anfänger manchmal ganz schon verwirren oder man genießt einfach dei Magie des Frameworks ;)

Um einem die Arbeit zu erleichtern, hat das ZF2 für uns beim Erreichen des Controllers schon ein View-Objekt erstellt, welches wir aus unseren Methoden im Controller heraus mit Inhalt beleben können.
Dazu übergibt man letztlich die ermittelten Daten der gewünschten Anfrage an den View, was schlicht die Rückgabe eines Arrays erfordert.

Hier als Beispiel der Controller meiner Webseite skriptbu.de, der tatsächlich alles enthält, was zur Anzeige der Titelseite benötigt wird:
Es gibt bei mir häufig einen Unterschied zum Standard-Controller im ZF2, der sich aber in meiner sehr datenbanklastigen Arbeitswelt durchaus bewährt hat:
Die Methode "init()", in der ich Datenbankverbindungen oder Services aufrufe, die ich sowieso in jeder Methode brauche oder wenn etwa Login-Sessions zu prüfen sind.

Hier wird nur ein Service zur Anzeige des RSS-Feeds der Fachinformatrix aufgerufen, der über die Standard-Methode  "ServiceLocator" initialisiert wird.

Aber zurück zum Thema:
Das View-Objekt des Zf2 erlaubt uns auch die Übergabe von Methoden-Aufrufen, weshalb wir die benötigten Daten dann genau in diesem Moment aufrufen, wenn sie gebraucht werden.
Unter dem Alias "fachmeta" sind dann später im View alle Daten rund um den RSS-Feed verfügbar und werden dort angezeigt.

Die Ermittlung der Daten übernimmt der Feedservice, den wir uns in einer späteren Folge bestimmt auch mal ansehen.
Dort enthalten die Methoden fast alle deutlich mehr Quelltext als der Controller hier, denn dort wird die Arbeit verrichtet... der Controller ist der Platz für die Business-Logic.
Die besteht hier in einem einfachen "Nimm die Daten und zeige sie an!".

Der View einer Controller-Methode heißt genau wie die Methode selbst, hier also "index.phtml".

Natürlich kann man den Standard View auch durch ein eigenes View-Objekt ersetzen, aber es macht in den allermeisten Fällen schlicht keinen Sinn.

Hier ein Ausschnitt aus dem View, der die Darstellung der Rubrik "weitere Artikel" übernimmt und  im Ergebnis zeigt, wie sich im View HTML und PHP vermischen.
Jedoch ist der View kein Ablageort für alle Dinge, die einem sonstwo zu schwierig werden!
Da ist es an jedem selbst, sich  die Schere im Kopf zu setzen, die für Ordnung im MVC-System sorgt...

Nun wird es Zeit, dass wir in der nächsten Folge dann mal eine wirklich tolle Verbindung zur Datenbank herstellen :)

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

openSUSE 12.3: Ebooks mit DRM lesen

Grundsätzlich war es zwar nicht wirklich dringend nötig, aber letztlich auch eine Frage der Ehre, dass ich das Problem endlich mal angehe...

Ich besitze eine Menge ehrlich erworbener und bislang vorwiegend auf meinem OYO gelesener Ebooks, deren Manko es bislang war, das sämtliche Ebook-Reader-Software unter Linux die Kooperation mit diesen DRM-geschützten Werken verweigerte.

Auf Microsoft-Betriebssystemen übernimmt die Software Adobe Digital Editions diese Aufgabe und verwaltet die Adobe-ID und die damit lesbaren Bücher.

ADE hatte dieses Problem bislang auch perfekt in der bis vor kurzem noch vorhandenen virtuellen Windows-Maschine gelöst, die nun aber auch nicht mehr existiert.

Was also tun?
Calibre ist ein netter Reader, an meine DRM-Bücher komme ich aber hier nicht...

Also warum nicht Adobe Digital Editions installieren?

Wir sind ja auf einem Linux-System, also gibt es für dieses Problem eine am Ende doch auch recht einfache Lösung, die allerdings die Registrierung eines Accounts b…

Eishockey: Wenn dem Torhüter langweilig wird...

...geht er aufs Eis.Unter diesem Motto muss man wohl das Pokal-Derby gegen die "Rivalen" vom Glockenturm sehen:
Hütete er einen Tag früher noch als Goalie bei der Niederlage in Niesky das Tor, trug sich Christian Krüger heute als Torschütze des 5:0 in die Scorerliste des Spieles ein. Die gestrige Niederlage in Niesky ist ja die Folge einer schlichten Kausalkette von Verletzten, durch die Arbeit verhinderten, den Playoffs in Weißwasser bis zur eigentlichen Ursache, dem fehlenden Dach und damit fehlendem Eis in Niesky und lässt sich,angesichts von gerade mal 10 reisenden Spielern der Akademiker, auch verstehen, brachte sie aber auf dem Weg der "Mission Finale" leider nicht voran.Das nun Krüger zum Torschützen wird, ist ein Zeichen beständigen Personalmangels in der Post-Season, der geradezu symptomatisch für die Teilnehmer der gesamten Pokalrunde zu sein scheint.Doch in dieser Partie, ob nun mit dezimiertem Kader oder nicht, sind die Weddinger schlicht die Favoriten u…