Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #3616

Re: Darstellung von Knoten mit Trennung zwischen view und Code

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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