Views Cache: so leert man den Cache

Drupal 8 Views Cache löschen

Drupal bringt eine Reihe von Caching Mechanismen mit sich, die sich zwar sehr gut auf die Leistung Ihrer Webseite auswirken, allerdings in manchen Fällen zu Problemen führen. Wer zum Beispiel versucht eine Liste von Inhalten in zufälliger Reihenfolge anzuzeigen, der wird schnell merken, dass Gäste oder nicht eingeloggte Nutzer immer wieder die gleiche Liste bekommen. Das ist natürlich nicht Sinn der Sache. Aktuell arbeiten einige Mitglieder aus der Community an einer Lösung. Bis dahin habe ich aber einen kleinen Trick für euch.

Im Grunde ist es ganz einfach. Ihr müsst lediglich den betroffenen Cache-Tag der View ausfindig machen, und jeglichen View Cache, der mit diesem Tag zusammenhängt invalidieren. 

Hier ist ein Schnipsel, den ihr so nutzen könnt. Natürlich müsst ihr 'view_machine_name' durch den echten Machinennamen eurer View ersetzen:

function mymodule_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
    \Drupal\Core\Cache\Cache::invalidateTags(array('config:views.view.view_machine_name'));
}

Noch schöner wäre es natürlich, wenn diese betroffene View gar nicht erst gecacht werden würde, aber da müssen wir wohl noch auf eine schöne Lösung warten.