Welche Möglichkeiten zu Cachen gibt es?
Es stehen unterschiedliche Cache-Mechanismen auf unterschiedlichen architektonischen Ebenen zur Verfügung:
PSR-6 Caching und Laufzeitcache
FAQ zum Caching
Welche Bespiele für die Verwendung des Laufzeitcaches gibt es?
Der Laufzeitcache ist immer dann sinnvoll, wenn komplexe Methoden vielfach aufgerufen werden. Das kommt bspw. im Rollen-Konzept vor. Siehe bspw. \Brandbox\Framework\Security\Role\AuthorisationManager::isAuthorizedDataset
. Anwender die mit einer Rolle in der Anwendung unterwegs sind, müssen sehr häufig innerhalb eines Requests nach den Rechten eines Datensatzes fragen.
Wie kann ich den PSR-6 Cache debuggen?
Nutzen Sie dafür bspw. das Plugin Redis Helper.
Wie kann ich feststellen, welcher PSR-6 Cache Adapter gerade aktiv ist?
Öffnen Sie dazu Cache-Control im Adminbereich und prüfen Sie ob der jeweilige Adapter informationen liefert. Falls nicht, ist er nicht aktiv.
Welche Besonderheiten gibt es im Umgang mit dem Second-Level-Cache von Doctrine?
Um die Performance von Logging-Tabellen zu schonen, ist es sinnvoll usage="READ_ONLY" zu verwenden. Damit ist es dann allerdings nicht mehr möglich den Datensatz zu überschreiben.
Arbeitet man direkt mit dem Querybuild, muss man aktiv dafür sorgen, dass das Cache wieder geleert wird. Siehe o.g. Dokumentation (Stichwort: Evict)