7.3. Cache uitschakelen in Drupal. Debug-informatie weergeven in de template.
Voordat je begint met ontwikkelen in Drupal 8, moet je de cache uitschakelen. In tegenstelling tot Drupal 7 wordt in versie 8 niet alleen de cache van entiteiten, views en velden opgeslagen, maar ook de gecompileerde Twig- en render-templates. Om al deze caches uit te schakelen, moet je het volgende doen.
1. Kopieer het bestand /sites/example.settings.local.php
naar /sites/default/settings.local.php
.
Dit bestand bevat al de nodige instellingen om de cache uit te schakelen.
2. Open het bestand settings.php
en haal de commentaartekens weg bij de volgende regels. Dit zorgt ervoor dat het bestand settings.local.php
dat we hebben aangemaakt, wordt ingeladen:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
Hiermee wordt settings.local.php
geactiveerd.
3. Controleer of deze regel niet is uitgecommentarieerd in settings.local.php
:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Het bestand development.services.yml
is al aanwezig, we hoeven het alleen maar te activeren.
4. Controleer ook dat de aggregatie van CSS en JavaScript is uitgeschakeld in settings.local.php
:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. Schakel ook de cache van gerenderde HTML en de cache van de Dynamic Page-module uit:
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
Zoek deze regels in settings.local.php
en haal de commentaartekens weg.
6. Om te voorkomen dat Drupal testbestanden van modules ophaalt, wijzig je de volgende instelling naar FALSE
:
$settings['extension_discovery_scan_tests'] = FALSE;
7. Voeg nu in /sites/development.services.yml
het volgende gedeelte toe:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
Het bestand development.services.yml
zal er uiteindelijk zo uitzien:
# Local development services.
#
# Om deze functie te activeren, volg de instructies bovenaan
# het bestand 'example.settings.local.php', dat zich naast dit bestand bevindt.
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
Het is erg belangrijk om juiste regelafbrekingen en inspringingen te behouden in YML-bestanden. Gebruik alleen twee spaties (geen tabs) als inspringing.
debug: true
Deze regel zorgt ervoor dat Drupal op de pagina de mogelijke namen weergeeft van templates die kunnen worden overschreven. Soms kan dit de layout verstoren of zeldzame fouten veroorzaken in bepaalde modules, maar over het algemeen is het een zeer handige manier om de template-structuur in Drupal 8 te bestuderen.
8. Daarna moet je de cache leegmaken, wat je kunt doen via Drush:
drush cr
Of door het volgende script in de browser uit te voeren:
http://jouwsite/core/rebuild.php