Symfony

Cache & Performance

Cache Pools, Adapter, Tags, Cache-Invalidierung, HTTP-Cache, ESI, Varnish-Integration

20 Interview-Fragen·
Mid-Level
1

Welche Schnittstelle verwendet Symfony zur Implementierung des PSR-6-Cache-Systems?

Antwort

Symfony implementiert den PSR-6-Standard über das CacheItemPoolInterface. Diese Schnittstelle definiert die Methoden getItem(), hasItem(), deleteItem(), save() und clear() zur Verwaltung von Cache-Items. Die Cache-Komponente von Symfony stellt mehrere Adapter (Redis, Memcached, Filesystem usw.) bereit, die alle diese Schnittstelle implementieren und so die Interoperabilität mit anderen PSR-6-kompatiblen PHP-Bibliotheken gewährleisten.

2

Welcher ist der in Symfony für die Entwicklungsumgebung standardmäßig konfigurierte Cache-Adapter?

Antwort

In der Entwicklungsumgebung verwendet Symfony standardmäßig den ArrayAdapter, der den Cache im Arbeitsspeicher ablegt. Dieser Cache ist nicht über Requests hinweg persistent, was ideal für die Entwicklung ist, da er Probleme mit veraltetem Cache bei Codeänderungen vermeidet. In der Produktion wird empfohlen, einen persistenten Adapter wie Redis oder Memcached für bessere Leistung zu verwenden.

3

Wie erstellt man einen benutzerdefinierten Cache-Pool in der Symfony-Konfiguration?

Antwort

Benutzerdefinierte Cache-Pools werden in der Konfiguration unter dem Schlüssel framework.cache.pools definiert. Jeder Pool kann seinen Adapter, seine Standardlebensdauer (default_lifetime) und optional Tags angeben. Beispielsweise ermöglicht ein 'app.cache.products'-Pool mit RedisAdapter die Verwaltung des Produkt-Caches unabhängig von anderen Daten, was eine gezielte Invalidierung erleichtert.

4

Welche Methode sollte man verwenden, um einen Wert aus dem Cache mit einem Berechnungs-Callback abzurufen, falls er fehlt?

5

Was ist der Hauptvorteil von Cache-Tags in Symfony?

+17 Interview-Fragen

Meistere Symfony für dein nächstes Interview

Zugang zu allen Fragen, Flashcards, technischen Tests, Code-Review-Übungen und Interview-Simulatoren.

Kostenlos starten