7.3. Cache in Drupal deaktivieren. Debug-Informationen im Template ausgeben.
Bevor Sie mit der Entwicklung unter Drupal 8 beginnen, müssen Sie den Cache deaktivieren. Im Gegensatz zu Drupal 7 werden in der 8. Version von Drupal nicht nur Entitäten, Views und Felder zwischengespeichert, sondern jetzt auch kompilierte Twig- und Render-Templates. Um diesen gesamten Cache zu deaktivieren, müssen Sie Folgendes tun.
1. Kopieren Sie die Datei /sites/example.settings.local.php
in die Datei /sites/default/settings.local.php
Diese Datei enthält bereits die notwendigen Einstellungen, um den Cache zu deaktivieren.
2. Kommentieren Sie in der settings.php
-Datei die folgenden Zeilen aus, damit die von uns erstellte settings.local.php
eingebunden wird:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
Dadurch wird settings.local.php
aktiviert.
3. Überprüfen Sie, dass diese Zeile in settings.local.php
nicht auskommentiert ist:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Die Datei development.services.yml
ist bereits erstellt, wir müssen sie nur einbinden.
4. Prüfen Sie ebenfalls, dass die Aggregation von CSS und Javascript in settings.local.php
deaktiviert ist:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. Deaktivieren Sie auch das Caching des gerenderten HTML sowie den Cache des Moduls Dynamic Page:
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
Suchen Sie diese Zeilen in settings.local.php
und kommentieren Sie sie aus.
6. Damit Drupal keine Tests von Modulen lädt, ändern Sie den Wert dieser Einstellung auf FALSE:
$settings['extension_discovery_scan_tests'] = FALSE;
7. Fügen Sie in der Datei /sites/development.services.yml
folgenden Abschnitt hinzu:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
Die Datei development.services.yml
sollte dann so aussehen:
# 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.
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
Es ist sehr wichtig, Zeilenumbrüche und Einrückungen in YML-Dateien zu beachten, verwenden Sie nur 2 Leerzeichen und keine Tabs als Einrückungen.
debug: true
Diese Zeile sorgt dafür, dass mögliche Namen zum Überschreiben jeder verwendeten Template-Datei auf der Seite ausgegeben werden. Manchmal kann dies das Layout beeinträchtigen oder in einigen Modulen Fehler verursachen, was aber sehr selten vorkommt. Im Core ist das eine sehr praktische Funktion, um die Struktur der Templates in Drupal 8 zu studieren.
8. Danach müssen Sie den Cache leeren, das können Sie mit Drush machen:
drush cr
Oder indem Sie das Skript auf der Seite ausführen:
http://your-site/core/rebuild.php