Hi,
Wenn's dir um Performance geht: Meide dynamische Webseiten. :)
Geht bei meinen Zielen leider nicht ;)
Alternativ: Meide Template-Engines. Die verbrauchen auch einen teilweise erheblichen Anteil an Performance alleine zum Parsen des Templates.
Genau aus diesem Grund hatte ich die Idee das ganze beim Cachen in Teile zu zerlegen. Solche die einfach so raus gegeben werden können, da es für die Template-Engine nichts mehr zu tun gibt (zum Beispiel Seiten die vom Nutzer einmal mit Inhalt bestückt wurden, von der Template-Engine in ein passendes Layout gepackt wurden und dann so gespeichert wurden) und die Teile die halt doch bei jedem Aufruf neu generiert werden müssen. Eben weil ich schon ein "komisches Gefühl" bei der Idee hatte die komplette Ausgabe mehrfach durchzurödeln zu müssen.
PHP ist ja selbst eine immer weiter aufgebohrte Template-Engine. Wenn man sich strikt an Code-Trennung hält, kann man damit auch effizient und vernünftig Templates herstellen.
Gut, aber den HTML-Code muss ich ja so oder so mindestens einmal lesen und einmal an den Output-Buffer senden. Es müsste also doch in jedem Fall effektiver sein das Cache-File zu lesen, erste Zeile auszuwerten und in den meisten Fällen ohne weitere Arbeit alles was danach kommt quasi blind an den Output-Buffer zu schieben.
Die Frage ist, was du optimieren willst. Ladezeit beim User? CPU-Zyklen? Festplattenzugriffe minimieren?
In erster Linie Datenbank-Zugriffe und CPU-Zeit.