Christian Seiler: - PHP - Templates .. wie hol ich einen block in einen block ?

Beitrag lesen

Hallo Transmitter,

wie performant ist denn welche lösung?

Das {include} dürfte schneller sein, da Du sonst den kompletten Ausgabecode in einer Variable rumkopierst - aber nur unmerklich.

wenn ich im nachhinein noch was an meinem anmelde formular ändern will, dann ist es wohl besser, smarty noch mal zu instanzieren?
das mit dem fetch wäre dann auch ne klasse idee!

Erst einmal: Fetch schließt Smarty instatieren mit ein. Das ganze dreht sich doch um folgendes: Willst Du immer die gleiche Datei da reinkopieren oder nicht? Und wenn nicht, kann der Inhalt mal nicht direkt aus Smarty kommen?

Situation 1: Immer die gleiche Datei includen:
{include file="irgendwas.html"}

Situation 2: Jeweils eine andere Datei includen:
{include file=$welche_datei}
und dann muss in der Smarty-Variable "welche_datei" halt der Name der Datei stehen.

Situation 3: Der Inhalt kommt nicht (nur) aus Smarty, sondern evtl. auch woanders her:
{$inhalt}
und die Smarty-Variable "inhalt" muss halt den einzufügenden Inhalt enthalten; das *kann* dann vom Aufruf der Methode fetch einer zweiten Smarty-Instanz kommen.

ist das vom traffic / zugriff her skalierbar ohne performance verlußte?

Ich denke, dass selbst Situation 3 bei überschaubaren Dateigrößen noch recht performant ist. Wenn aber bei der Füge-über-Variable-ein-Methode "riesengroße" Dateimengen verarbeitet werden (> 100 KB schätze ich mal, kann mich aber auch um Größenordnungen täuschen), dann kann man den Unterschied schon messen.

Grüße,

Christian

--
Sollen sich alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen und nicht mehr davon erfasst haben als eine Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst.
                      -- Albert Einstein