Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #3616
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: Darstellung von Knoten mit Trennung zwischen view und Code |
| Date | 2015-12-17 22:27 +0000 |
| Message-ID | <1t567321f6i3de5n3e8%sfroehli@Froehlich.Priv.at> (permalink) |
| References | <n4uao3$v4r$1@news.albasani.net> <1t5672db4fi7736n3e8%sfroehli@Froehlich.Priv.at> <1840896.Q9fhR2YkPP@PointedEars.de> |
On Thu, 17 Dec 2015 20:45:09 Thomas 'PointedEars' Lahn wrote:
> Stefan Froehlich wrote:
>
> > On Thu, 17 Dec 2015 13:44:51 Jan Novak wrote:
> >> class Groups{
> >> ...
> >>
> >> public function ceateTree($groups,$parent_id=0){
> >> [echo]
> >> }
> >> ...
> >> }
> >
> > wenn Du Views verwendest, wieso hast Du dann echo-Befehle in Deinem
> > Code stehen.
> Weil man das im allgemeinen so machen sollte.
*Im* View, ok. Das oben ist aber, jedenfalls hatte ich Jan so
verstanden, kein View, sondern vermutlich ein Model. CMIIW.
> > Statt dessen empfiehlt sich in einem ersten Schritt z.B. so
> > etwas:
> > #v+
> > public function createTree($groups, $parent_id=0) {
> > $string = '';
> > foreach ($groups as $group) {
> > $string = '<li>' . $group->getName();
> > $string .= $this->createTree($groups, $group->getId());
> > $string .= '</li>';
> > }
> Effizienter:
> $that = $this;
> $string = implode('',
> array_map(function ($group) use ($that, $groups) {
> return '<li>' . $group->getName()
> . $that->createTree($groups, $group->getId())
> . '</li>';
> }, $groups)
> );
Wenn's drauf ankommt, ist das sicherlich vorzuziehen. Ansonsten
empfehle ich, so zu schreiben, wie man es am einfachsten lesen kann
(das hilft einem dann Monate später), und die von mir verwendete
Schreibweise ist daher einfach die von Jan gewesen.
> Bei sauberem MVC gehört überhaupt kein Markup in diese Methode.
Eh, das schrieb ich dann ja auch weiter unten. Eines nach dem
anderen.
> > In Deinem View musst Du nun $groups zur Verfügung haben
> Nein, muss er nicht.
> [...]
> Das Template darf maximal $this->groups benutzen.
Wie das bei ihm genau aussieht, sei dahingestellt, ich weiss ja
nicht, wie Jan seine Templates aufruft. Ob $groups oder
$this->groups ist für die Erklärung aber erst einmal ziemlich egal,
die Methode muss er halt korrekt aufrufen (und selbst wissen, wie er
das in seiner Umgebung tut).
> $this ist bei MVC in Templates üblicherweise die Referenz auf die
> Instanz der View-Klasse für das Template [...]
Es wäre nett bzw. wenigstens deutlich übersichtlicher, wenn Du immer
nur ein Problem auf einmal lösen würdest und nicht gleich alles
drumherum im gleichen Atemzug.
> Wobei sich aber nicht das Template die Daten aus dem Model holen,
> oder gar den Controller bemühen soll, sondern der Controller muss
> vorgängig die Daten aus dem Model holen und damit eine möglichst
> darstellungsunabhängige View- Variable definieren, deren Wert vom
> Template über die View-Instanz benutzt wird:
Was sich bei mir in dieser Absolutheit regelmäßig nicht bewährt (die
strikte Trennung in View und Template). Zugriff vom Template auf den
Controller und *fallweise* auch auf das Model kann die Übersicht im
Template mit marginalen Verlusten enorm erhöhen.
Aber ich weiss, das liegt daran, dass ich nicht professionell
arbeite. Ich kann damit gut leben, und Jans konkrete Frage beührt es
ohnehin nicht :)
Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike
Der pazifistische Nachbar benötigt Stefan. Und Du?
(Sloganizer)
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
Darstellung von Knoten mit Trennung zwischen view und Code Jan Novak <repcom@gmail.com> - 2015-12-17 13:44 +0100
Re: Darstellung von Knoten mit Trennung zwischen view und Code Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2015-12-17 16:01 +0000
Re: Darstellung von Knoten mit Trennung zwischen view und Code Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-12-17 20:45 +0100
Re: Darstellung von Knoten mit Trennung zwischen view und Code Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2015-12-17 22:27 +0000
Re: Darstellung von Knoten mit Trennung zwischen view und Code Jan Novak <repcom@gmail.com> - 2015-12-18 08:25 +0100
Re: Darstellung von Knoten mit Trennung zwischen view und Code Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2015-12-19 18:33 +0100
Re: Darstellung von Knoten mit Trennung zwischen view und Code Jan Novak <repcom@gmail.com> - 2016-01-11 14:08 +0100
csiph-web