Thread HTML::Template->loop (Geltungsbereich der Variablen) (27 answers)
Opened by roooot at 2009-05-15 17:42

sid burn
 2009-05-20 15:55
#121792 #121792
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
2009-05-20T11:33:50 pq
hat mich nicht überzeugt, ganz im gegenteil. ein templating trennt die ausgabe (html oder was anderes) von der logik. und da ist für mich das prinzip von TT, HTC und HT gleich.

Logik hast du bereits wenn du eine Schleife durch gehst, wenn du werte prüfen musst, $x < 10, if statements etc. HT, TT und HTC trennen nirgendswo etwas von logik und nicht logik, es reduziert nur wieviel Logik möglich ist. Von daher kann ich deine Aussage nichtmal logisch nachvollziehen. Keine Logik hättest du dann wenn du eine Pure Statische Seite hast. Und das ist definitiv nicht sinn eines Templating Systems.

Quote
wenn für dich templating was anderes bedeutet, können wir gleich aufhören zu diskutieren.

Diskussionen bedeuten für dich also wenn jemand eine andere Vorstellung hat die Diskussion abzubrechen?

Quote
HT ist ein templatingsystem, genauso wie s/\$(\w+)/$params{$1}/g ein templatingsystem ist, nur mit viel weniger funktionen. ich sehe immer noch nicht, wo für dich der unterschied ist, ausser dass HT nunmal umständlicher ist.

Und weil es das ist, halte ich es nicht geeignet. Ansonsten könnte ich ja auch wieder Assembler Programmieren wenn umständlichkeit keine Rolle spielt anstatt in Perl zu Programmieren.

Quote
fur mich ist die diskussion beendet, ich habe keine lust, über etwas zu diskutieren, wenn du dir die definitionen einfach selber zurechtmachst.

Mir geht es eher um das "V" im "MVC", der View ist für die Präsentation zuständig. Wenn du für den View nunmal HT nutzt, und dein View nicht dazu in der Lage ist die Daten aufzubereiten/Präsentieren, dann zeigt es nur das HT eben als View unbrauchbar ist. HT sehe ich natürlich immer noch als ein Templating System an. Aber es trennt eben MVC nicht voneinander.

Mit irgendeiner Definition von Templating Systemen hat das ganze überhaupt nichts am Hut.

Oh aber ich hoffe du hast dich wirklich aus der Diskussion ausgeklinkt. Man könnte ja sonst ungereimtheiten aufklären...

Quote
In den Templates einer Template Engine sollte kein Programm-Code enthalten sein. Kontrollstrukturen (wie IF) sind allerdings oft in Templates möglich und verbreitet.

Definiere Programmcode!
Die Definitionen sind so einfach nur Schwammig und unbrauchbar. Lese dir mal den Anfang zum Artikel Skriptsprachen durch:

Quote
Skriptsprachen (häufig auch Scriptsprachen) sind Programmiersprachen, die vor allem für kleine, überschaubare Programmieraufgaben gedacht sind. Sie verzichten oft auf bestimmte Sprachelemente, deren Nutzen erst bei der Bearbeitung größerer Projekte zum Tragen kommen. So wird etwa in Skriptsprachen auf den Deklarationszwang von Variablen verzichtet – vorteilhaft zur schnellen Erstellung von kleinen Programmen (siehe auch Prototyping (Softwareentwicklung)), bei großen hingegen von Nachteil, etwa wegen der fehlenden Überprüfungsmöglichkeit von Tippfehlern in Variablennamen.

"Perl" wird dort ebenfalls als Skriptsprache eingeordnet, sogar unter der Kategorie "Skriptsprachen im WWW".

Text von irgendwo Copy & Pasten bringt nicht viel. Du könntest es auch genau beschreiben welche Aufteilung du dadrunter verstehst.

Quote
wenn ich im template ein bestimmtes datumsformat brauche und HT verwende, muss es der programmierer halt generieren. sehe da kein problem (ausser dass es natürlich umständlicher ist, aber es ist immer noch templating).

Templating ja, aber kein sauber aufgeteiltes MVC mehr. Generell sehe ich es nichtmal generell als sauberes Programmieren an.

Genau diesen Fall haben wir übrigens @ $work.

Wir nutzen HT. Die Codebasis ist allerdiengs immer die gleiche. Auf dieser Codebasis haben wir hunderte von Webseiten laufen. Die anzeige ist aber bei jedem anders. Jede Seite hat eine eigene Datenbank, und eigene Templates, aber immer die gleiche Codebasis.

Woher weißt du den nun welche Wert im Template genutzt wird? Du weißt es einfach nicht. Also haben wir einen Filter davor, zu jedem Wert wird bevor die Werte zum Template geschleußt werden alle Möglichen Kombinationen generiert die alle Webseiten haben könnte.

Aus "datetime" das das Datum enthält werden dann so ca. 20 verschiedene Formate generiert die ja jedes Template nutzen könnte. datetime_long datetime_short, datetime_german_short, ...

Und was ist wenn eine neue Seite wieder ein neues Format benötigt? Ja klasse der Programmcode wird dann wieder erweitert. So werden dann aus vielleicht 10 übergebenen Variablen am ende 100+ verschiedene kombinationen der Anzeige generiert. Und das bei jedem aufruf überall.

Und genau das ist eben nicht MVC Konzept. MVC Konzept besagt das man jeden Teil austauschen kann ohne den anderen zu beeinflussen. Das ist hier ja nicht gegeben.

Zwar kann ich das Template austauschen, allerdiengs wenn ich eine andere Anzeige haben möchte dann erledige ich es nicht mehr im View sondern im Controller/Model was auch immer?

Du willst mir also erzählen das es für dich volkommen logisch ist das du zwar ein View hast der deine Daten Aufbereiten soll zur Präsentation, dein View dazu aber nicht in der Lage ist, und es deswegen logisch ist View bestandteile im Controller/Model unterzubringen?

TT sehe ich hier an das es die Aufgabe des Views am besten erfüllt. HT erfüllt diese Aufgabe meiner Ansicht nach nichtmal ansatzweise. Ein Templating System bleibt HT deswegen immer noch.

Ansonsten noch "Nein, der Programmierer muss es eben nicht generieren". Den dafür ist ja der View zuständig das er Daten so aufbereitet wie er Sie benötigt. Der View Präsentiert die Daten und es ist die Aufgabe des Views das zu machen. Nicht irgendein anderer Bestandteil.

Ich glaube wir reden hier etwas aneinander vorbei.

Ich bestreite nicht das HT, HTC keine Templating Systeme sind. HT passt nur nicht ins View Konzept da es die Anforderungen einfach nicht erfüllt.

Dein HTC passt da schon mehr herein, ich sehe hier aber TT wegen seiner Virtuellen Funktionen und Filter Vorteilhafter, da es die Daten eben besser aufbereiten kann. Und ich Anzeigelogik eben nicht im Controller oder Modell anfange zu mischen.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread HTML::Template->loop (Geltungsbereich der Variablen)