disable data cache drupal caching drupal-cache

data - ¿Cómo vacío Drupal Cache(sin Devel)



drupal 8 cache (12)

AQUI TIENES:

Tuve que desinstalar el módulo "devel" (era incompatible con los elementos del menú especial, que necesitaba más), así que hice los míos.

Donde quiera que vea MODULENAME reemplácelo con el nombre de su módulo.

PASO 1: agregue a cualquier módulo (preferiblemente uno de sus módulos personalizados) en HOOK_MENU, antes de la línea "return $ items":

// short cut for flushing the caches: $items[''flush-cache''] = array( ''type'' => MENU_CALLBACK, ''title'' => t(''Flush the cache''), ''description'' => ''MODULENAME Custom Cache Flush'', ''page callback'' => ''MODULENAME_flush_cache'', ''access callback'' => TRUE, );

PASO 2: Ahora, en el mismo archivo de módulo, donde no está "dentro" de ninguna otra función, agregue:

/** Page callback **/ function MODULENAME_flush_cache() { drupal_flush_all_caches(); return ''Caches were flushed.''; }

Ahora, puede ir a la URL "/ flush-cache" en su sitio para vaciar el caché. (Después de lavar el caché por última vez de la manera anterior).

PASO 3: Si lo desea REALMENTE conveniente, agregue lo siguiente a su archivo page.tpl.php. Puedes ponerlo prácticamente en cualquier lugar entre <body> y </ body>. NOTA: $ my_is_test es una variable que uso que es TRUE en mi sistema de prueba, y FALSE en producción. Si no tiene algo así, reemplácelo con VERDADERO o FALSO para activarlo o desactivarlo:

<?php if ($my_is_test): ?> <a style="text-align:left; position:absolute; right:2px; top:20px;" href="<?=$base_path?>flush-cache" onclick="this.innerHTML = ''<b><blink><big>Wait...</big></blink></b>'';">flush</a> <? endif; ?>

¡Y voilá! Tiene un enlace de "color" en la esquina superior derecha de cada página en la que puede hacer clic. Siéntase libre de cambiar las cantidades "correctas" y "superiores" (o cambie "a la derecha" por "izquierda" o "superior" a "abajo" para colocarlo donde lo desee. Esta posición del enlace solo funciona en navegadores modernos, pero es solo para ti, así que no debería ser un problema, ¿verdad?

¿Cómo puedo vaciar las cachés de Drupal?

  • sin el módulo Devel
  • sin ejecutar alguna instrucción PHP en un nuevo nodo, etc.
  • sin entrar en la base de datos

Efectivamente, ¿cómo se le indica al usuario final que borre sus cachés?


Cuando está conectado como administrador (obviamente, no todos los usuarios del sitio deben poder borrar el caché) , debe haber una página en " Administrar> Configuración del sitio> Rendimiento ".

Y, en la parte inferior de la página, debe haber un botón (algo así como " Borrar datos en caché ") para borrar el caché

Por lo que recuerdo, no hay necesidad de que Devel haga eso, y realmente no necesitas ir a la base de datos, ni ejecutar ningún código PHP hecho en casa.


Como referencia, puede echar un vistazo a Cómo borrar el caché Drupal del lado del servidor


El código anterior es para Drupal 6.

Para Drupal 7, el módulo de vaciado de caché sería el siguiente:

<?php /** * Implementation of hook_menu() */ function flush_cache_menu() { $items = array(); $items[''flush-cache''] = array( ''type'' => MENU_NORMAL_ITEM, ''title'' => t(''Flush the cache''), ''description'' => ''Flush all website caches to make sure it updates to relect ''. ''your recent changes.'', ''page callback'' => ''flush_cache_custom_callback'', ''access callback'' => user_access(''flush cache''), ); return $items; } /** * Implementation of hook_permission() */ function flush_cache_permission() { return array( ''administer my module'' => array( ''title'' => t(''flush cache module''), ''description'' => t(''Content admin flush cache.''), ), ); } /** * Function that flushes the cache */ function flush_cache_custom_callback() { drupal_flush_all_caches(); return ''Caches were flushed.''; }

Nota: que luego lo va al ir a:

sitename.com/flush-cache

Asegúrate de darles permiso en la página de permisos. Borre el caché una vez que sea el modo "normal" si el permiso no aparece después de encender el módulo.

Esto es preferible cuando no desea que su cliente tenga acceso al menú de administración pero aún desea que puedan vaciar el caché.


El siguiente módulo crea un elemento de menú al que solo pueden acceder los usuarios con el permiso "caché al ras", que este módulo pone a disposición en la página de permisos de usuario normales.

/** * Implementation of hook_menu() */ function flush_cache_menu() { $items = array(); $items[''flush-cache''] = array( ''type'' => MENU_NORMAL_ITEM, ''title'' => t(''Flush the cache''), ''description'' => ''Flush all website caches to make sure it updates to relect ''. ''your recent changes.'', ''page callback'' => ''flush_cache_custom_callback'', ''access callback'' => user_access(''flush cache''), ); return $items; } /** * Implementation of hook_perm() */ function flush_cache_perm() { return array(''flush cache''); } /** * Function that flushes the cache */ function flush_cache_custom_callback() { drupal_flush_all_caches(); return ''Caches were flushed.''; }


En Drupal 8, el módulo del menú de administración aún no está listo para su uso. Y probablemente será reemplazado por Drupal "Barra de herramientas". Así que ahora mismo no hay una manera fácil de borrar el caché, sin ir a:

admin/config/development/performance

La única alternativa es agregar un elemento de menú en la barra de herramientas existente. Esto se puede hacer utilizando este módulo , pero como puede ver, todavía necesita un poco de trabajo. Lo hice funcionar, pero tuve que hacer algunos ajustes.


Encontré lo siguiente en: http://www.drupalgardens.com/content/clear-all-caches-not-working

Hay otra capa de almacenamiento en caché alrededor del sitio que "borrar todos los cachés" no afecta, tienes razón. Esa es la capa que almacena el contenido para usuarios anónimos.

Si desea omitir la memoria caché para realizar pruebas, puede agregar una cadena de consulta no deseada al final de la ruta de su sitio. Por ejemplo, si desea omitir el caché en example.drupalgardens.com/foo, puede visitar example.drupalgardens.com/foo?bar=baz o cualquier otro texto aleatorio configurado como? Xxxxx = xxxxx.

Esto me ayudó, porque he tenido problemas en los que limpiar el caché en Configuración> Rendimiento no parecía ayudar.


La eliminación a petición se puede realizar en Administrar> Configuración del sitio> Rendimiento.

Debe configurar el trabajo cron para que se ejecute cada hora (o el intervalo que desee).

Cuando cron se ejecuta en Drupal, todos los cachés se borran y se reconstruyen sin la necesidad de que un humano lo haga manualmente.

Si esta pregunta se refiere a la temática, debe desactivar los mecanismos de almacenamiento en caché (agregación css / js) y no tendrá que borrar los datos de la memoria caché cuando realice cambios.


Sería increíble si pudieras OBTENER el comportamiento golpeando:
http://drupal.local./admin/settings/performance?op=Clear%20cached%20data
pero no puedes.
Sin embargo, quiero señalar la URL para abreviar a través del menú de administración (use la última parte):
http://drupal.local. /admin/settings/performance


Si desea borrar la caché de un módulo, puede usar el siguiente código.

drupal_flush_all_caches();


También puede usar el módulo Drush , que le permite usar la línea de comandos para ejecutar los populares comandos de Drupal, como "drush cron" o "drush cache clear".


Tengo la solución más fácil para eso. Instale el módulo admin_menu (en realidad no solo para este propósito, una vez que haya instalado este módulo, no lo lamentará seguramente, enlace: http://drupal.org/project/admin_menu ). De acuerdo, en el menú desplegable superior que acaba de aparecer, desplace su favicon y aparecerá el menú desplegable, y verá: Vaciar todo el menú de cachés. Un clic - un color. Además, puedes enjuagar todos los cachés o seleccionar qué vaciar: páginas, menú, temas, etc. Pruébalo y nunca volverás)


use drush y este comando: drush cc all

Si usa Boost para almacenar en caché, debe ser más específico:

drush @alias_name cc all