HTTP-Cache
Der HTTP Cache ist ein clientseitiger Cache, der unnötige Datenübertragungen verhindert und sich sehr positiv auf die Performance auswirkt.
HTTP Cache Control
Über ControllerAdapter::assignHttpCacheControl()
kannst du auf eine einfache Weise die HTTP-Caching-Header (z.B. "Cache-Control", "Pragma" usw.) modifizieren. Über ein \DateInterval
definierst du die Dauer, wie lange der Response im Browser zwischengespeichert werden soll.
class ExampleController extends ControllerAdapter { public function doFoo() { $this->assignHttpCacheControl(new \DateInterval('PT30M')); $this->forward('view\bar.html'); } }
Möchtest du Direktiven für den Http-Header "Cache-Control" selbst bestimmen, kannst du dies über den zweiten Parameter tun:
$this->assignHttpCacheControl(new \DateInterval('PT30M'), array(HttpCacheControl::DIRECTIVE_PUBLIC, HttpCacheControl::DIRECTIVE_PROXY_REVALIDATE)));
Anwenden
Da es sich beim HTTP Cache um einen clientseitigen Cache handelt, gibt es keine Möglichkeit den Cache aus der Applikation heraus zu löschen, wie das zum Beispiel beim Response Cache über den Response Cache Store möglich ist. Das sollte dich aber nicht davon abhalten den HTTP Cache für möglichst alle deine Seiten zu verwenden. Auch sehr kurze Cache-Zeiten können die Serveranfragen stark reduzieren und die User Experience verbessern.