7.3. Disattivare la cache in Drupal. Visualizzare informazioni di debug nel template.
Prima di iniziare lo sviluppo su Drupal 8, è necessario disattivare la cache. A differenza di Drupal 7, nella versione 8 non vengono memorizzate nella cache solo entità, viste e campi, ma anche i template Twig compilati e i render template. Per disattivare tutta questa cache, segui questi passaggi:
1. Copia il file /sites/example.settings.local.php
in /sites/default/settings.local.php
Questo file contiene già le impostazioni necessarie per disattivare la cache.
2. Nel file settings.php
, decommenta le seguenti righe per includere il file settings.local.php
che abbiamo appena creato:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
Questo permetterà di abilitare settings.local.php
.
3. Assicurati che questa riga sia decommentata in settings.local.php
:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Il file development.services.yml
è già creato, dobbiamo solo includerlo.
4. Verifica inoltre che l’aggregazione di CSS e JavaScript sia disattivata in settings.local.php
:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. È necessario anche disattivare la cache dell’HTML renderizzato e la cache del modulo Dynamic Page Cache:
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
Trova queste righe in settings.local.php
e decommentale.
6. Per evitare che Drupal esegua la scansione dei test presenti nei moduli, imposta il seguente parametro su FALSE
:
$settings['extension_discovery_scan_tests'] = FALSE;
7. Ora apri /sites/development.services.yml
e aggiungi il seguente paragrafo:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
Il file completo development.services.yml
dovrebbe apparire così:
# 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
È molto importante rispettare le interruzioni di riga e i rientri nei file YAML: usa solo 2 spazi e non inserire tabulazioni.
debug: true
Questa riga abilita la stampa dei possibili nomi di template che è possibile sovrascrivere nella pagina. Talvolta questo può alterare il layout o generare errori in alcuni moduli, anche se molto raramente. Nel core di Drupal è una funzione molto utile per studiare la struttura dei template in Drupal 8.
8. Dopo aver completato tutte le modifiche, svuota la cache, che può essere eliminata tramite Drush con il comando:
drush cr
Oppure eseguendo lo script direttamente dal browser: