hi,
Ok, ich habe jetzt lange genug mit Smarty rumgemacht mit dem Ergebnis, dass ich es nicht einsetzen werde.
Generell die Idee: Es soll die Möglichkeit geben, die Klasse und das Template zusammen in einer Datei zu haben. ob_funktionen() ermöglichen es, eine solche Datei mit include oder require einzubinden, die Klasse wird kompiliert und das Template liegt im Puffer, alles zusammen ein Aufwasch ;)
Als Nebeneffekt wird auf diese Weise auch PHP-Code im Template geparst und kompiliert. Eine Klasseninstanz ist zu diesem Zeitpunkt noch nicht vorhanden. Bei Bedarf kann also hier bereits prozedural was gemacht werden, worum sich die Klasseninstanz dann nicht mehr kümmern muss.
Danach kommt ein einheitlicher Prozess: Instanzerstellung, Templateprozess, letzterer muss auf den Puffer bzw. einen eigenen String anwendbar sein, was mit Smarty schonmal gar nicht geht (s. Frage untenstehend). Und erst zum Schluss, wenn keine Fehler aufgetreten sind, wird alles ausgegeben.
Savant3 als eine PHP-Code verwendende Template-Engine. Das ist daselbe Prinzip, wie es auch das Zend Framework out-of-the-box für seine Views verwendet.
Kann ich mit dieser Engine einen String als Template verwenden? Das ist die Anforderung: Ein von der Ausgabe unabhänger Templateprozess.
Hotti