php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.01.2012, 13:55  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Nope, Wenn du im Controller eine Variable übergeben willst benutzt du das View ( wie immer ), dessen aufgabe es ist ein ( das entsprechende ) ViewInfo zu erzeugen / zu befüllen, das das View dann dem gewünschten Renderer-Facade übergibt.

Warum wieso ?
- Das View repräsentiert wie auch in "nicht Template-Engine unterstützenden Anwendungen" die HTML-Erzeugung, ist also für den Controller ganz normal die Anlaufstelle was das darstellen von Daten angeht
- Das ViewInfo-Objekt das die Daten und Unterobjekte ( gleicher art! ViewInfo! ) enthält ist das gegenstück zum geschaffenen Interface: dem RendererFacade. Das View erzeugt / manipuliert dieses Objekt.
- Das Renderer-Facade ist das eigentliche Interface das vom View genutzt wird ( und mit dem es via ViewInfo-Objekte Daten austauscht, und auch nur durch die Verschachtelung dieser Daten-Vorhaltenden Objekte die sonst durch verschachtelte Views repräsentierte Template-Hirarchie realisiert )
- Den Entgültigen Output stößt das Renderer-Facade in der jeweiligen engine an. Damit das Renderer-Facade das tut sagt das View ihm das es das tun soll. ( $view->display(); ---> $renderer->display() )
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 13.01.2012, 14:48  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.167
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Das View ist für die Darstellung verantwortlich - Wie, das ist nicht vorgegeben.
xm22 ist offline   Mit Zitat antworten
Alt 13.01.2012, 14:58  
Erfahrener Benutzer
 
Registriert seit: 26.11.2008
Beiträge: 264
dsentker befindet sich auf einem aufstrebenden Ast
Standard

Der Vorschlag von xm22 in #10 reizt mich, da er am einfachsten umzusetzen ist und dem Prinzip der geringsten Verwunderung folgt. Alternativ: Wäre es schlecht, wenn die View-Klasse beim Aufrufen des Renderes sich selbst übergibt?

PHP-Code:
public function render() {
   
$renderer $this->getRenderer();
   
$renderer->render($this);

In meinen Augen ist ein Renderer pro View notwendig, wenn z.B. verschachtelte bzw verknüpfte View-Dateien gerendert werden soll, die unterschiedlichen Template-Typen entspringen (Okay, selten, aber sollte dennoch möglich sein).
__________________
dsentker ist offline   Mit Zitat antworten
Alt 13.01.2012, 16:52  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

warum nicht einfach sin singleton pattern auf view einsetzen? und dann im COntroller dann das view zusammen setzen

PHP-Code:
$layout View::factory('layout');
$layout->subview1 View::factory('subview1')->render();
$layout->subview2 View::factory('subview2')->render();
$layout->foobar $foobar;
$this->response->body($layout->render()); 
schau dir auch mal extract an weil $layout->assign kling bäh finde es besser mit $view->var_name = "foo" und im template dann echo $var_name ist kürzer irgendwie
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 13.01.2012, 17:01  
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

Was Du besser findest, ist aber nicht das Maß der Dinge. Und Dein „Singleton“ ist wohl eher ne Factory method.

Zitat:
Alternativ: Wäre es schlecht, wenn die View-Klasse beim Aufrufen des Renderes sich selbst übergibt?
Also ich würde entweder ein Array übergeben oder die Daten noch einmal in einem reinen Containerobjekt kapseln.
__________________
--
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 13.01.2012, 17:08  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Was Du besser findest, ist aber nicht das Maß der Dinge.
sollte ja nur ein vorschlag sein
Zitat:
Zitat von nikosch Beitrag anzeigen
Und Dein „Singleton“ ist wohl eher ne Factory method.
ja gerade irgendwie an Singelton gedacht... danke für die verbesserung...
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 13.01.2012, 17:25  
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

Hier mal so als Diskussionvorschlag. Bitte nicht an den Namen abarbeiten, ist nicht so meine Spezialität



Du könntest jetzt von AbstractView ableiten, wenn Du Billig-Views hast, die ohne Rendering oder Template auskommen oder sonst von AbstractEngineRenderedView. Über Setter und Getter werden die Daten direkt an eine ViewContainer-Instanz durchgereicht, die dann als verbindliche Schnittstelle zur Rendering Engine dienen kann. getData liefert ein Array aller Werte, sonst kannst Du einfach direkt im Objekt zuweisen.
__________________
--
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
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
Problem mit MVC und Ajax Request, responseText kommt als gesamtes Layout zurück litterauspirna PHP Einsteiger 39 30.12.2011 20:12
View Helper in View Objekt verfügbar machen? litterauspirna PHP Einsteiger 1 27.12.2011 15:22
Problem mit swfobjects R4v3r JavaScript, Ajax und mehr 8 21.09.2008 14:17
Search - Result - View Problem PHP Tipps 2005-2 2 04.09.2005 08:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mvc php layout, viewrenderer html public::render container()

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:51 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