Zum Inhalt springen

TypoScript oder Extension?

Erstellt am 28. Mai 2009 · 4 Antworten · letzte Antwort am 28. Mai 2009

Tags: Frage

froemken ·

Hallo zusammen,

was ist der bessere "Programmierstil"? TypoScript (TS) oder eine Extension zu bauen (PHP). Was ist schneller? Oder ist das egal?

Wenn's mal eben daraum geht ein paar Daten im Frontend anzeigen zu lassen, muss man ja nicht immer gleich eine Extension dafür bauen, oder? Dank dem Objekt TEMPLATE habe ich die gleichen Möglichkeiten wie in PHP. Kurze Scripte, die mit TS nicht abdeckbar sind, können mit USER und USER_INT eingebunden werden. Jeder der sich leitlich mit TS auskennt, kann den Code lesen, verstehen und ändern. Bei einer Extension wird das ne ganze Ecke schwieriger.

Wie macht ihr das? Bis wohin ist für Euch TS gut genug und ab wann wandert ihr auf eine Extension aus?

froemken

einpraegsam.​net ·

Zuerst: Eine Extension ist auch nichts anderes als eine userFunc.

Wenn du mit Typoscript schnell bist, empfehle ich immer das, denn dann kannst du die Änderungen direkt in TYPO3 machen. Desweiteren wird Typoscript versioniert (weil in der DB gespeichert) - du kannst also auch zu einer älteren Version springen.

Flexibler ist man mit einer userFunc schon. Wenn diese zum Einsatz kommt, sollte möglichst viel über TYPO3 gesteuert werden (Werteübergabe an Script) damit du auch in Zukunft schnell ändern kannst.

Generell gilt: Ausführlich dokumentieren - denn ich weiß nicht mehr, was ich vor einer Woche gemacht habe 😃

just2b ·

Hallo,

es kommt schon sehr drauf an um was es genau geht.

von Performance-Seite ists egal wenns gecached ist, wenn nicht, wird wohl php ein Stück schneller sein, weil der ganze TS-Overhead mit den stdWraps usw wegfällt.

Was ich mit TS mache:
- jede art von menüs, und wenn wo ein dynamisches Untermenü aus Nicht-Seiten reinkommt, dann kommts drauf an. wenn das nur ein select aus einem datensatz ist, dann TS, wenn da aber dann ein fettes query kommt, php-
- simple listen von datensätzen
- login/logout bereich, der auf jeder Seite ist
- einbindung von bildern usw usw
- alles was ich irgendwo anders, zB in anderem template oder sonst wo überschreiben will

was ich in php mache:
- alles was in TS sehr aufwändig ist, zB irgendwelche umrechungen und kalkulationen
- alles was in sich abgeschlossen ist und sonst nie gebraucht wird (fällt grad kein Bsp ein)
- alles was irgendwie vom editor positioniert werden kann
- alles was irgendwie vom editor bisschen konfiguriert werden muss
- ausgabe von list + single view

Wenn's mal eben daraum geht ein paar Daten im Frontend anzeigen zu lassen, muss man ja nicht immer gleich eine Extension dafür bauen, oder?

siehe letzter punkt. wenn ich eben schnell irgendeine datenbank habe oder sonstwas, dann mach ich da schon eine extension dafür, weil ich in php flexibler bin mit irgendwelchen ifs und mehr platz habe und mich nicht an das TS binden muss. auch sobald da mehrsprachigkeit reinkommt im template, ists feiner.

generell sind aber auch so kleine exts von mir immer sehr TS lastig, weil ich zB für die ausgabe immer alles durch stdWrap jage und wenns ein Bild-Feld ist, dann generier ich das Bild über TS und nicht in php.

Bis wohin ist für Euch TS gut genug und ab wann wandert ihr auf eine Extension aus?

die frage ansich ist falsch, weil sehr viele sachen in TS schneller gehen als in php. daher kommts sehr auf den fall drauf an

lg georg

froemken ·
just2b schrieb

von Performance-Seite ists egal wenns gecached ist, wenn nicht, wird wohl php ein Stück schneller sein, weil der ganze TS-Overhead mit den stdWraps usw wegfällt.

Das ist gut zu wissen...für mich ne wichtige Info.

just2b schrieb

- simple listen von datensätzen
- login/logout bereich, der auf jeder Seite ist
- einbindung von bildern usw usw

Ja genau...um sowas geht's. Hatte da mal ein Glossar auf TS-Basis programmiert. Allein die Navigation mit A-Z und 0-9 verschlingt ja schon an die 150 Zeilen. Bilder mache ich auch nur noch in TS...ist irgendwie übersichtlicher.

just2b schrieb

die frage ansich ist falsch, weil sehr viele sachen in TS schneller gehen als in php. daher kommts sehr auf den fall drauf an

Ich hatte im Hinterkopf ein paar TS-Script von mir, die jetzt so nach und nach die 1000er Marke übersteigen. Dank +ext-Templates zwar sehr übersichtlich strukturiert aber die Bange, dass das zu rechenintensiv werden könnte hast du mir ja gerade "Gott-Sei-Dank" genommen :-) Also mache ich meinen TS-Weg einfach weiter und bin glücklich.

Derzeit habe ich das Gefühl, dass es nicht immer Sinn macht, jeden Krempel mit diesen FCEs zu realisieren. Die Teile sind echt geil...keine Frage, aber je mehr ich mache, desto mehr bläht sich meine Content-Element-Liste auf und hinzu kommt, dass diese FCEs nicht den vollen Funktionsumfang haben wie das "normale" TS im Template (Thema: fields und [global]). Als Alternative habe ich jetzt wieder das TEMPLATE-Objekt lieb gewonnen und Dank EXT:tscobj kann ich meinen TS-Code überall anzeigen lassen, wo ich will (als CE).

Vielen Dank auf jeden Fall für Deine Mühe

froemken

just2b ·
froemken schrieb

Ich hatte im Hinterkopf ein paar TS-Script von mir, die jetzt so nach und nach die 1000er Marke übersteigen. Dank +ext-Templates zwar sehr übersichtlich strukturiert aber die Bange, dass das zu rechenintensiv werden könnte hast du mir ja gerade "Gott-Sei-Dank" genommen :-) Also mache ich meinen TS-Weg einfach weiter und bin glücklich.

naja da kommt schon drauf an was in den 1000 zeilen passiert. du kannst sowohl in TS als auch in php viel machen was rechenintensiv ist... irgendeine rekursive Funktion, zB für den erhalt einer pidlist oder irgendwelcher joins. grundsätzlich gilt: wenn gecached, dann ists fast egal, wenn nicht, muss man sowieso mehr aufs optimieren achten.

bsp dazu: kürzlich hat ein kunde ein skript zum einbau geschickt, ein iframe aufruf und in der url ein zufalls-parameter. manch einer hätt da zB ein user_int oder coa_int genommen (also php oder TS) und dann damit das bekommen. damit wär eber schon das nicht cachebar gewesen. hier bietet sich natürlich dann js an, damit alles gecached wird...