logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll
19/06/2025, by Ivan

Cache max-age = Zeitabhängigkeiten

Cache max-age entspricht der HTTP-Direktive max-age im Cache-Control-Header.

Warum?

Die maximale Cache-Dauer bietet eine deklarative Möglichkeit, zeitabhängige Caches zu erstellen.

Manche Daten sind nur für einen begrenzten Zeitraum gültig; in diesem Fall möchten Sie eine entsprechende maximale Lebensdauer angeben. Im Drupal 8 Core gibt es jedoch keine Daten, die nur zeitlich begrenzt gültig sind; wir cachen in der Regel permanent (siehe unten) und verlassen uns vollständig auf Cache-Tags für das Invalidate (Ungültigmachen).

Was ist das?

Max-age ist eine positive ganze Zahl, die eine Anzahl Sekunden angibt.

Max-age wird als einzelne Ganzzahl angegeben, da ein Cache-Element logischerweise nur eine maximale Lebensdauer haben kann.

Beispiele:

  • 60 bedeutet Caching für 60 Sekunden
  • 100 bedeutet Caching für 100 Sekunden
  • 0 bedeutet Caching für null Sekunden, also kein Caching
  • \Drupal\Core\Cache\Cache::PERMANENT bedeutet permanentes Caching, also wird es nur durch Cache-Tags ungültig gemacht (anders gesagt: ∞ oder unendliche Sekunden).

Wenn Sie also beispielsweise verhindern wollen, dass ein gerenderter Block gecacht wird, müssen Sie für ihn max-age = 0 setzen.

Beispiel für die meisten Render-Arrays:

$build['#cache']['max-age'] = 0;

Beispiel in einer Funktion:

\Drupal::cache()->set('my_cache_item', $school_list, REQUEST_TIME + (86400));

Wenn Sie die max-age eines Blocks auf 0 ändern wollen, müssen Sie die Methode getCacheMaxAge() implementieren.

Beschränkungen von max-age

Leider funktioniert max-age für anonyme Nutzer und das Page Cache Modul des Drupal Cores nicht. Beispielsweise siehe diese Issues:

Bis diese (und möglicherweise andere) Probleme behoben sind, bedenken Sie, dass das Setzen von max-age in einem Render-Array, das in eine Seite eingebunden ist, nicht ausreicht, damit anonyme Nutzer nach Ablauf der max-age eine neue Version sehen. Gleichzeitig versucht das bereitgestellte Modul Cache Control Override, diese Probleme zu mildern. Es kann Ihnen auch helfen, benutzerdefinierte Cache-Tags auf zeitabhängigen Seiteninhalten zu setzen und diese Tags manuell mit hook_cron() zu invalidieren. Viel Erfolg!

Source URL:

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.