Drupal 8

Caching deaktivieren und Debugging aktivieren in Drupal 8

18. 07. 2016

Es ist ganz schön lästig, wenn man beim Entwickeln von Themes in Drupal 8 jedes Mal den Cache unter „Configuration > Performance“ löschen muss, damit Änderungen übernommen werden. Hier ist eine kurze Info, wie der Cache für die Zeit der Entwicklung deaktiviert werden kann – und Twig-Debugging zur Unterstützung beim Themes-Entwickeln aktiviert werden kann.

settings.local.php

Als ersten Schritt nehmen wir die Datei „example.settings.local.php“ im Ordner „sites“ und kopieren sie in den Unterordner „default„. Dies geht nicht ganz so einfach, da der Unterordner schreibgeschützt ist. Daher muss man dem Besitzer des Ordners und der einzelnen Dateien zunächst Schreibrechte geben – entweder über das WebFTP-Programm des Hosters oder über FileZilla:

FileZilla 01

Anschließend die Datei von „example.settings.local.php“ in „settings.local.php“ umbenennen.

Natürlich nicht vergessen, nach dem Entwickeln der Site und vor dem Online-Stellen nicht nur die Caching-Settings zurückzusetzen, sondern auch den Schreibschutz für das Verzeichnis wieder einzurichten!

Nun in der Datei bei folgender Zeile das Kommentarzeichen entfernen:

$settings['cache']['bins']['render'] = 'cache.backend.null';

Dies sieht dann so aus:

Drupal Caching Off 1

settings.php

Nun zur Datei „settings.php“ wechseln (ebenfalls im Verzeichnis „default“) und folgende Zeilen entkommentieren. Damit wird die oben bearbeitete Datei erst geladen.

Drupal Caching Off 2

Achtung:
Sollte ein Fehler auftreten – einfach Drupal mit der Datei /rebuild.php aufrufen.
Der Fehler sollte nun nicht mehr auftreten.

development.services.yml

Nun bearbeiten wir die Datei „development.services.yml„, im Überordner „sites“, und ergänzen folgendes:

parameters:
  twig.config:
    debug: true
    auto-reload: true
    cache: false

Nun löschen wir den Cache unter „Configuration > Performance“ ein letztes Mal.

Überprüfen, ob Twig-Debugging aktiviert ist

Im Quelltext der Seite müssten Kommentare, wie beispielsweise <!-- THEME DEBUG --> zu finden sein:

Drupal Twig Debug 01

Überprüfen, ob der Cache deaktiviert ist

Änderungen in der HTML-Struktur, beispielsweise in „page.html.twig“ müssten sofort nach einem Refresh übernommen werden.

 

image_pdfimage_print
1 likes

Author

Manuel

Comments (1)

  • Juli 21, 2017 by mb21

    mb21

    Hallo Manuel,

    danke erstmal für die hilfreichen Anleitungen mit Drupal 8! Irgendwo habe ich einen Fehler drinnen und finde ihn aber nicht. Nachdem ich alles laut deiner Anleitung durchgeführt habe, aktualisieren sich diverse Änderungen in der page.html.twig nicht, nach einem Refresh. Erst wenn ich den Cache wieder lösche. Wärest du so nett und schaust dir das mal an?

    [development.services.yml]
    # Local development services.
    #
    # To activate this feature, follow the instructions at the top of the
    # ‚example.settings.local.php‘ file, which sits next to this file.
    parameters:
    http.response.debug_cacheability_headers: true
    services:
    cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
    parameters:
    twig.config:
    debug: true
    auto-reload: true
    cache: false

    [settings.php]
    if (file_exists($app_root . ‚/‘ . $site_path . ‚/settings.local.php‘)) {
    include $app_root . ‚/‘ . $site_path . ‚/settings.local.php‘;
    }

    [settings.local.php / wurde nach default kopiert]
    $settings[‚cache‘][‚bins‘][‚render‘] = ‚cache.backend.null‘;

    Die DEBUG Kommentare werden auch bei mir im Quelltext ausgegeben, jedoch teilweise in rot und nicht alles in grün wie bei dir. Grundsätzlich geht es aber darum dass der geänderte Code nicht refrehst.

    Vielen Dank für deine Hilfe und Grüße,
    mb21