Frage

Heute bei der Arbeit jemand versucht, mich davon zu überzeugen:

{$obj->getTableInfo()}

ist für Smarty / Mvc / Templat in Ordnung, weil es eine Objekt Methode verwendet. Ich argumentierte, dass, weil es einen Aufruf an die Datenbank macht es keinen Platz hat da zu sein, und es sollte in der Steuerung (wir MVC nicht wirklich verwenden). Bin ich richtig in meinem Verständnis der logischen Trennungen, die in MVC und in der Regel in Templat eingesetzt werden? Oder gibt es etwas, das ich fehle?

War es hilfreich?

Lösung

Sie haben Recht. Er ist falsch.

Datenbank Anrufe, egal in welcher Form, sollte in der Steuerung leben, wenn Sie MVC Recht machen wollen.

Offensichtlich Leute pissen alle über das, was es sollte sein und tun solche Sachen, aber es ist nicht der richtige Weg.

Andere Tipps

Nun, es gibt keine „offiziellen“ Regeln oder irgendetwas, aber ich denke, so etwas in der Steuerung gehört. Ich mache nichts aus meiner Sicht Code außer Anzeigevariablen, nichts komplexer als ein if oder eine foreach-Typ Schleife erlaubt ist. Sicherlich nicht Aufruf von Funktionen, die auf die Datenbank zugreifen. Das sollte alle durch die Steuerung geladen werden, sollte der Blick nur, ob es sie angezeigt werden muss oder nicht.

Abhängig von ihrem Kontext und Umfang wirklich.

Ist $ obj der Steuerung oder der Modellschicht? Das sollte beantworten, ob es meiner Meinung nach gültig ist.

Als Antwort auf die anderen Antworten zu lesen.

Der Name Funktionen in sich selbst bezieht es sich um eine einfache Getter-Methode zu sein. Es kann einen Aufruf an die DB durch eine Steuerungsschicht machen. Welche würde ich sagen, ist in Ordnung. Vor allem, wenn es irgendeine Form von Caching im Speicher verwendet. (Dh der Getter ist der Setter, wie Sie es nur gecached werden sollen, wenn es einmal verwendet wird.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top