Blaubart: Noch 2 Verständnisfragen

Beitrag lesen

Tach.

Meiner Meinung nach ist das Bereitstellen der Inhalte, die das Templatemodul in die Templates füllt, Aufgabe des aufrufenden Programms.

Was meinst du mit "aufrufendes Programm"?

Den Teil deines Scriptes, der das Templateobjekt erzeugt und benutzt. Dort wird auch das Array mit den Inhalten fürs Ersetzen im Template erstellt.

Das Templatemodul sollte nicht bei jedem übergebenen Inhalt prophylaktisch überprüfen, ob's nicht nur eine "normale" Zeichenkette ist oder ob sich dahinter nicht zufällig der Name einer existierenden Datei verbirgt, die dann eingebunden wird.

Aber wie sollte es sonst gehen? Ich müsste irgendwie speichern, ob zu irgendeinem bestimmten String eine bestimmte Datei existiert.

Oder eben die entsprechenden Inhalte, die aus diesen Dateien, der DB oder sonstwoher kommen, außerhalb des Templates "sammeln" und dann lediglich dem Template zum Einsetzen überreichen. Wenn trotzdem unbedingt Dateien eingebunden werden sollen, könnte man natürlich auch das Templatemodul um eine Methode erweitern, neue Tags fürs Ersetzen definieren o. ä., die genau das machen (und *nur* das). Dann noch eine Syntax für Verzweigungen, Schleifen, Zugriff auf Objektattribute ... und schon bist du bei Systemen wie Smarty gelandet. ;)

Was mir an dieser Sonderfunktion der von dir geposteten Templateklasse nicht gefällt: Sie sieht für mich hauptsächlich nach zukünftigen Problemen aus. Wenn beispielsweise in deinem Ersetzungsarray Werte auftauchen, die eigentlich nicht als Dateinamen gemeint waren aber trotzdem welche darstellen ...

--
Once is a mistake, twice is jazz.