Estoy trabajando en un módulo en Drupal 8 que recupera datos sensibles al tiempo de una API REST externa. Los datos se procesan y se envían a un bloque. Los datos finales se envían a una plantilla Twig de la siguiente manera:
...
public function build() {
$build = [];
$build['ticker_block'] = [
'#theme' => 'module_theme',
'#data' => $myService->data(),
];
return $build;
}
Esto no funciona en el entorno de producción donde la memoria caché está habilitada y los datos representados se muestran obsoletos. ¿Cómo deshabilito la memoria caché solo para mi módulo y debo hacerlo tanto para la plantilla Twig como para el complemento Block?
Para detener el almacenamiento en caché de un bloque específico, use la siguiente función:
fuente
Deshabilitar el caché para una página / tipo de contenido / controlador específico
Se agregó la opción de ruta 'no_cache' para marcar las respuestas de una ruta como no almacenables en caché
fuente
Para evitar el almacenamiento en caché de un bloque en particular:
agregue el siguiente código en el archivo theme_name.theme
fuente
Para deshabilitar el caché para un tipo de bloque, preprocese el bloque de ese tipo y establezca max_age en 0.
fuente