CacheFlush

Proporciona control detallado sobre la limpieza de caché de Drupal a través de presets configurables que pueden combinar cache bins del core, tablas de caché de módulos contrib y funciones personalizadas de limpieza de caché.

cacheflush
1,767 sites
22
drupal.org

Instalar

Drupal 11, 10, 9, 8 v2.0.3
composer require 'drupal/cacheflush:^2.0'

Overview

CacheFlush es la herramienta definitiva para gestionar la limpieza de caché de Drupal con gran granularidad. A diferencia del enfoque estándar de "limpiar todas las cachés", este módulo permite crear presets personalizados que limpian solo los componentes de caché específicos necesarios para tu tarea particular.

El módulo es adecuado tanto para desarrolladores como para administradores y editores. Cada preset puede combinar varias opciones de limpieza de caché incluyendo cache bins del core (bootstrap, config, render, menu, etc.), cachés de módulos contrib, funciones específicas de caché como static reset o limpieza de caché Twig, y con el submódulo avanzado, cache IDs específicos y cache tags.

Los presets pueden ejecutarse directamente desde el menú de administración, mediante comandos Drush, o automáticamente a través de trabajos cron. El acceso a cada preset puede controlarse a través del sistema de permisos de Drupal, permitiendo que diferentes roles tengan acceso a diferentes operaciones de limpieza de caché.

Features

  • Crear presets personalizados ilimitados combinando diferentes fuentes de caché
  • Limpiar cache bins del core (bootstrap, config, render, menu, entity, discovery, etc.)
  • Limpiar tablas de caché de módulos contrib detectadas automáticamente desde los módulos instalados
  • Ejecutar funciones de caché específicas como drupal_static_reset, vaciar assets CSS/JS, invalidar container, borrar caché Twig, limpiar cachés de plugins y reconstruir datos de módulos/temas
  • Modo avanzado para limpiar cache IDs específicos por bin e invalidar cache tags
  • Acceso rápido mediante integración con el menú de administración con entradas de menú opcionales por preset
  • Soporte de comandos Drush para limpiar presets desde línea de comandos
  • Integración con cron mediante Ultimate Cron para limpieza de caché programada
  • Interfaz de administración basada en Views con operaciones masivas (publicar, despublicar, añadir/eliminar entrada de menú, eliminar)
  • Control de acceso granular con permisos separados para ver, editar, eliminar y ejecutar presets propios vs cualquier preset
  • Hooks para que módulos personalizados extiendan las opciones de limpieza de caché o reaccionen a eventos de limpieza de caché

Use Cases

Desarrollo: Limpiar solo caché Twig después de cambios en plantillas

Crear un preset que solo limpie la caché de almacenamiento PHP de Twig. Esto es mucho más rápido que limpiar todas las cachés cuando solo has modificado archivos de plantilla .html.twig. Selecciona la opción 'twig' bajo 'Otras opciones de caché del core' y guarda. Añádelo al menú para acceso con un clic durante el desarrollo de temas.

Desarrollo de temas: Restablecer cachés de render y assets

Crear un preset combinando el cache bin 'render', limpieza de 'asset' (CSS/JS), y caché 'twig'. Esto limpia todo lo necesario cuando se hacen cambios en el frontend sin reconstruir todo el container o datos de módulos.

Desarrollo de plugins: Limpiar cachés de discovery y plugins

Crear un preset con el cache bin 'discovery' y la opción 'plugin'. Usar esto cuando se desarrollan plugins personalizados (blocks, fields, etc.) para reconocer rápidamente definiciones de plugins nuevas o modificadas sin una reconstrucción completa de caché.

Editor de contenido: Limpiar caché de página específica por cache tags

Usando el submódulo Advanced, crear un preset que invalide cache tags específicos como 'node:123' o 'taxonomy_term:45'. Esto permite a los editores limpiar la caché de contenido específico sin afectar el resto del sitio.

Mantenimiento de caché programado con cron

Habilitar el submódulo Cron y crear un preset que limpie la caché de render. Habilitar cron para este preset y configurar el trabajo de Ultimate Cron para ejecutarse cada hora durante períodos de bajo tráfico. Esto asegura que la caché de render no crezca sin límites en sitios de alto tráfico.

Limpieza de caché en pipeline CI/CD mediante Drush

Usar el submódulo Drush para integrar la limpieza de caché en scripts de despliegue. Crear presets para diferentes escenarios de despliegue (despliegues solo de código podrían necesitar solo invalidación de container, mientras que despliegues de funcionalidades podrían necesitar reconstrucción de router) y llamarlos mediante 'drush cf [id]' en tu pipeline de despliegue.

Tips

  • Comienza con un preset que limpie solo lo que comúnmente necesitas durante el desarrollo - la mayoría de las tareas no requieren una reconstrucción completa de caché
  • Añade los presets de uso frecuente al menú de administración para acceso con un clic desde cualquier lugar en la interfaz de administración
  • Usa la función de cache tags del submódulo Advanced para invalidar cachés específicas de contenido sin afectar el caché de páginas anónimas
  • Al depurar, crea un preset 'Opción Nuclear' que limpie todo, pero usa presets específicos para el trabajo diario para ahorrar tiempo
  • Considera convenciones de nomenclatura de presets como 'Dev: Solo Twig' o 'Deploy: Reconstrucción completa' para hacer claro su propósito en el menú

Technical Details

Admin Pages 6
Cacheflush /admin/cacheflush

Página principal de administración del módulo CacheFlush. Proporciona acceso a la función Limpiar Todo y enlaces a los presets individuales de limpieza de caché que han sido añadidos al menú.

Cacheflush /admin/structure/cacheflush

Listado basado en Views de todas las entidades de presets cacheflush. Muestra ID del preset, título, autor, estado (publicado/despublicado), estado de entrada de menú y fecha de modificación. Incluye operaciones masivas y filtros por estado y entrada de menú.

Añadir entidad Cacheflush /admin/structure/cacheflush/add

Formulario para crear un nuevo preset de limpieza de caché. Organiza las fuentes de caché en pestañas verticales categorizadas: Tablas de caché del core, Otras opciones de caché del core (funciones), Tablas de caché contrib, y Otras opciones de caché contrib.

Editar entidad Cacheflush /cacheflush/{cacheflush}/edit

Formulario para editar un preset de limpieza de caché existente. Misma estructura que el formulario de añadir con los valores actuales precargados.

Eliminar entidad Cacheflush /cacheflush/{cacheflush}/delete

Formulario de confirmación para eliminar un preset de limpieza de caché.

Configuración de entidad Cacheflush /admin/structure/cacheflush/settings

Formulario de configuración para la entidad Cacheflush. Actualmente proporciona un marcador de posición para gestionar configuraciones de campos.

Permisos 11
Limpiar caché de Cacheflush

Permite acceso al menú principal de cacheflush y la capacidad de limpiar cachés usando presets

Administrar entidades Cacheflush

Permite acceso al formulario de administración para configurar entidades Cacheflush

Limpiar preset propio

Permiso para ejecutar presets de limpieza de caché creados por el usuario actual

Limpiar cualquier preset

Permiso para ejecutar cualquier preset de limpieza de caché independientemente del propietario

Crear nuevas entidades Cacheflush

Permiso para crear nuevos presets de limpieza de caché

Ver entidad propia

Permiso para ver presets de limpieza de caché creados por el usuario actual

Ver cualquier entidad

Permiso para ver cualquier preset de limpieza de caché

Editar entidad propia

Permiso para editar presets de limpieza de caché creados por el usuario actual

Editar cualquier entidad

Permiso para editar cualquier preset de limpieza de caché

Eliminar entidad propia

Permiso para eliminar presets de limpieza de caché creados por el usuario actual

Eliminar cualquier entidad

Permiso para eliminar cualquier preset de limpieza de caché

Hooks 4
hook_cacheflush_tabs_options

Define opciones personalizadas de limpieza de caché que aparecen en el formulario de creación de presets. Cada opción especifica una descripción, pestaña de categoría y funciones a ejecutar.

hook_cacheflush_ui_tabs

Define pestañas/categorías personalizadas en el formulario de creación de presets para organizar las opciones de limpieza de caché.

hook_cacheflush_before_clear

Se ejecuta antes de que se limpie un preset de limpieza de caché. Permite a los módulos realizar acciones o registros antes de la limpieza de caché.

hook_cacheflush_after_clear

Se ejecuta después de que se haya limpiado un preset de limpieza de caché. Permite a los módulos realizar acciones de limpieza o notificación.

Drush Commands 1
drush cacheflush [id]

Limpiar caché usando un preset cacheflush predefinido. Sin argumento ID, lista todos los presets publicados disponibles.

Troubleshooting 5
El preset no aparece en el menú de Cacheflush

Asegúrate de que el preset esté tanto Publicado (estado) COMO tenga 'Entrada de menú' habilitada. Verifica estos valores en el listado de entidades en /admin/structure/cacheflush. También verifica que tengas el permiso 'cacheflush clear cache'.

Error 'Entity not published yet' al usar Drush

El preset debe estar publicado para ser ejecutable. Edita el preset y asegúrate de que esté guardado con estado publicado, o usa las operaciones masivas para publicarlo.

Los trabajos cron no se están creando para los presets

Asegúrate de que el módulo Ultimate Cron esté instalado y habilitado antes de habilitar el submódulo cacheflush_cron. Si habilitaste cacheflush_cron primero, deshabilítalo y vuelve a habilitarlo después de instalar Ultimate Cron.

Las opciones de caché contrib personalizadas no aparecen

Los módulos contrib deben implementar hook_cacheflush_tabs_options() para exponer sus opciones de limpieza de caché. Si la opción de caché de un módulo no aparece, el módulo puede que no soporte la integración con CacheFlush.

La limpieza avanzada de cache ID no funciona

Asegúrate de haber seleccionado tanto un Cache ID como un Servicio (cache bin). Ambos campos son requeridos. El cache ID debe coincidir exactamente con el cid usado al almacenar el elemento de caché.

Security Notes 3
  • El permiso 'cacheflush clear cache' solo debe otorgarse a roles de confianza ya que la limpieza de caché puede impactar temporalmente el rendimiento del sitio
  • El permiso 'cacheflush administer' permite crear presets que podrían limpiar cachés críticas - asignar con cuidado
  • Los presets pueden ejecutar funciones arbitrarias definidas mediante hooks - revisar cualquier módulo contribuido que implemente hook_cacheflush_tabs_options()