Heim >Backend-Entwicklung >PHP-Tutorial >Erkundung der Cache -API in Drupal 8

Erkundung der Cache -API in Drupal 8

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-02-18 12:21:17970Durchsuche

Drupal 8's Enhanced Caching: Ein tiefes Eintauchen in die neue API

Drupal 8 bietet erhebliche Leistungsverbesserungen, vor allem dank der überarbeiteten Caching -API. Diese API befasst sich mit vielen Problemen, die Drupal 7 plagen und die Inhaltszustellung durch rechnerisch teure Daten optimieren. Dieser Artikel untersucht die Funktionalität der API und demonstriert seine Auswirkungen auf ein Beispielmodul.

Schlüsselverbesserungen:

  • Effiziente Datenspeicherung: Die API verwendet mehrere "Bins", im Wesentlichen mit cache_ für organisierte Datenspeicher vorangestellte Tabellen. Dieser strukturierte Ansatz strömt das Abrufen und die Verwaltung von Daten zur Verfügung.
  • vereinfachtes Cache -Management: Einfache Klassenmethoden handhaben das Abrufen, Speichern, Ungültiger und Entfernen von zwischengespeicherten Elementen. Dieses intuitive Design vereinfacht die Entwicklerinteraktion.
  • Zieldurchschnittlich mit Tags: Cache -Tags, eine neue Funktion, eine präzise Invalidierung der zugehörigen Cache -Elemente über in den Bins übertragen. Dies beseitigt die Notwendigkeit, einzelne Cache -IDs zu kennen und die Effizienz und Genauigkeit zu verbessern.

Verständnis der Drupal 8 -Cache -API

Die Kernfunktionalität der API dreht sich um diese Schlüsselaspekte:

1. Cache -Bins: Daten werden in Bins organisiert, auf die über den Drupal::cache() -Dienst zugegriffen wird. Der Standardbehälter ist cache_default. Verwenden Sie: Drupal::cache('render'); (für den Render -Cache), um einen Bin anzugeben. Während statische Anrufe bequem sind, wird in den Klassen die Abhängigkeitsinjektion empfohlen.

2. Abrufen von zwischengespeicherten Gegenständen: abrufen zwischengespeicherte Gegenstände ist unkompliziert:

<code class="language-php">$cache = \Drupal::cache()->get('my_value');</code>

$cache ist ein stdClass -Objekt, das Metadaten und Daten enthält ($cache->data). Beachten Sie, dass get() ohne einen zweiten Parameter (true) keine ungültig erklärten Elemente zurückgibt.

3. Speichern von zwischengespeicherten Elementen: Die set() -Methode bietet Flexibilität:

<code class="language-php">Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);</code>

Dies speichert $my_object (serialisiert) mit einer dauerhaften Lebensdauer und angegebenen Tags.

4. Cache Invalidierung und Entfernung: Die API enthält Methoden zur manuellen Invalidierung (invalidate(), invalidateMultiple(), invalidateAll()) und zur Entfernung (delete(), deleteMultiple(), deleteAll()). Die Müllsammlung entfernt automatisch abgelaufene Artikel.

5. Cache -Tags: Tags sind für die gezielte Ungültigmachung von entscheidender Bedeutung. Sie verknüpfen verwandte Cache -Elemente über Behälter. Manuelle Ungültigkeit durch Tag wird mit:

erreicht
<code class="language-php">\Drupal\Core\Cache\Cache::invalidateTags(['node:5', 'my_tag']);</code>

Drupal-Entitäten nutzen integrierte Tag-Methoden (getCacheTags(), getListCacheTags()).

Demonstration des API -Auswirkungens

Ein Demonstrationsmodul (verfügbar in einem bereitgestellten Git -Repository) zeigt die Vorteile der API. Dieses Modul erstellt eine Seite, die Daten von einer externen API abruft und die Ergebnisse zwischengespeichert. Die Seite zeigt die Zeit an, die sowohl für zwischengespeicherte als auch für ungekochte Anfragen benötigt wird, wodurch der Leistungsunterschied hervorgehoben wird. (Hinweis: Der Code des Repository verwendet die Abhängigkeitsinjektion für optimale Praxis.) Das Modul enthält eine Route:

<code class="language-php">$cache = \Drupal::cache()->get('my_value');</code>

und ein Controller (für die Kürze vereinfacht):

<code class="language-php">Drupal::cache()->set('my_value', $my_object, CacheBackendInterface::CACHE_PERMANENT, ['my_first_tag', 'my_second_tag']);</code>

Dieses Beispiel zeigt zwar vereinfacht, zeigt die Kernprinzipien. Das vollständige Modul im Repository bietet eine vollständigere Implementierung.

häufig gestellte Fragen (FAQs)

Der FAQS -Abschnitt aus dem ursprünglichen Artikel bleibt relevant und bietet umfassende Antworten auf die Funktionalität und Verwendung der Drupal 8 Cache -API.

Exploring the Cache API in Drupal 8 Exploring the Cache API in Drupal 8

Diese überarbeitete Antwort behält den Inhalt des ursprünglichen Artikels bei und verbessert die Klarheit, Struktur und Lesbarkeit. Die Bilder sind wie angefordert enthalten, obwohl ihre URLs Platzhalter sind und durch tatsächliche zugängliche URLs ersetzt werden müssen.

Das obige ist der detaillierte Inhalt vonErkundung der Cache -API in Drupal 8. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:APIs mit RAML testenNächster Artikel:APIs mit RAML testen