Adventskalender 2008: Türchen 21
Die Zeit verfliegt, der heilige Abend rückt immer näher und der Streß-Faktor was die Geschenke angeht steigt. Dennoch gibt es heute wieder einmal etwas TypoScript bzw. eine Erklärung zu TypoScript.
Erst vor wenigen Tagen habe ich einem Kollegen erklärt, worin eigentlich der Unterschied zwischen Objekten besteht, die mit temp. und lib. beginnen.
Dazu mal ein Beispiel TypoScript:
temp.meinObject = TEXT temp.meinObject.value = Text1 lib.meinObject = TEXT lib.meinObject.value = Text2
Bis hierhin gibt es keinen großen Unterschied, wir haben zwei Objekte, welche einen Text enthalten. Was passiert jedoch, wenn wir diese beiden Objekte nun als Referenz an einer anderen Stelle verwenden wollen:
page = PAGE page.10 <= temp.meinObject page.20 <= lib.meinObject
Hier zeigt sich, dass lediglich page.20 mit dem Text befüllt wird. Aber warum ist das so? Das ist sehr schnell und einfach erklärt. Objekte die mit temp. eingeleitet werden, werden nicht gecached. Wie der Prefix es selbst schon aussagt, es sind temporäre Objekte. Alles was hingeben mit lib. beginnt kann auch bei einer Referenz verwendet werden.
Arbeitet man nicht mit dem Referenz-Operator (<=) sondern mit dem Kopier-Operator (<), spielt es keine Rolle ob man temp. oder lib. verwenden.




Dezember 22nd, 2008 at 10:32
[...] hat euch der Frank den Unterschied von temp und lib Objekten beschrieben und ich muss mich dafür entschuldigen das Türchen 20 Ausgefallen ist. Liege im Moment [...]
Dezember 29th, 2008 at 23:13
Vielen Dank für diese Interessante Information. Ich habe mich schon oft gewundert, warum die Referenz < = nicht zu funktionieren schien. Aber auf diese Idee bin ich nie gekommen.
Liebe Grüße Lina
Februar 25th, 2009 at 23:24
Ich möchte eine kleine Ungenauigkeit korrigieren, um Missverständnissen vorzubeugen.
Egal ob Ihr temp oder lib verwendet, natürlich wird eure Seite gecached!
Nur werden temp-Objekte nicht nochmals zusätzlich und explizit als Objekte gecached, sondern nur die Kopie! Das temp-Objekt selbst wird vor dem Speichern des caches gelöscht,
Generell kann man sagen: Wenn man ein Objekt einmal oder zweimal braucht, dann sollte man temp verwenden, da es die runtime (Laufzeit) schont (es gibt aber Dinge die mit temp-Objekten nicht funktionieren, zb. der erwähnte Referenzoperator, oder wenn man sich ausserhalb der vererbten Struktur befindet). Wenn man hingegen das Objekt an verschiedenen Stellen immer und immer wieder verwendet, dann ist es wahrscheinlich besser, lib zu verwenden.
Februar 25th, 2009 at 23:30
Hallo Clemens,
erstmal danke für Deinen Kommentar und Hinweis.
Jedoch möchte ich auch klar stellen, dass ich nirgens vom Seiten-Cache gesprochen habe.
Zitat: “Objekte die mit temp. eingeleitet werden, werden nicht gecached.”