it-swarm-es.com

Campo / entidad / nodo de caché

Tengo un campo/widget personalizado que tiene una función de vista de formato que consume muchos recursos. Actualmente estoy almacenando en caché el resultado usando cache_set()/cache_get() dentro de la función hook_field_formatter_view Para mi campo.

¿Existe una mejor manera de poder hacer esto? Traté de usar la propiedad #cache De drupal_render() y guardó en caché la salida pero aún ejecuté mi función hook_field_formatter_view.

Básicamente, sé cómo hacer caché de página completa (para usuarios anónimos), pero ¿cómo se almacena en caché un campo/nodo/entidad (para todos)?

5
Kevin

Actualmente estoy almacenando en caché el resultado usando cache_set ()/cache_get () dentro de la función hook_field_formatter_view para mi campo

Honestamente, esta no es una mala manera de hacerlo. Cuando tiene una lógica personalizada que consume muchos recursos, asumir la responsabilidad de sus propias decisiones de almacenamiento en caché suele ser la idea correcta. Honestamente, realmente deseo que más desarrolladores se familiaricen con cache_get/set ().

Entitycache parece ser un esfuerzo para hacer esto en general, y con el tiempo estoy seguro de que surgirán algunas mejores prácticas a medida que más personas trabajen en este espacio. Sin embargo, a partir de hoy, para cualquiera que busque un conjunto de problemas similar: "Descubra cómo almacenarlo en caché usted mismo" es una buena respuesta.

3
Josh Koenig

Creo que deberías considerar usar el módulo Render Cache . Esto cuando se usa junto con Entity Cache debe complementarse bien como se menciona en la página del proyecto.

0
Gokul N K