Me gustaría usar el nuevo etiquetado de caché en D8 para ayudar a mantener sincronizado el contenido relacionado de diferentes tipos (entidades, nodos, bloques, etc.). Pero al leer la documentación actualmente disponible de esta función, no entiendo cómo agregar mi propia etiqueta de caché a los elementos de contenido al crear / actualizar dichos elementos.
Por ejemplo, al crear un nuevo nodo de un tipo Tienda, me gustaría agregar la ubicación de la etiqueta de caché: new_york_123 y lo mismo para un bloque. Luego, si cambiara el nombre para mostrar de la ubicación 123 de Nueva York a SoHo, podría invalidar la etiqueta de caché y tener toda la actualización de contenido relacionada.
Respuestas:
Aquí se explica cómo usar etiquetas de caché en el contexto de bloques personalizados que he probado y funciona, pero creo que se aplica a otros contextos.
Usar etiquetas drupal predeterminadas
En la matriz de compilación puede especificar
cache > tags > node_list
y este contenido de bloque se invalidaría (actualizaría) cuando CUALQUIER NODO se cambie sin nada más que hacer de su parteAlternativamente , puede poner uno o más ID de nodo / término / usuario para invalidar la matriz en nodos o términos específicos como se muestra en el comentario del código anterior. Nota: puede mezclar y combinar nodos, términos, usuarios y etiquetas personalizadas como mejor le parezca.
Usa tus propias etiquetas
si desea tener su propia forma de borrar su matriz de compilación, agregue su etiqueta única personalizada en la matriz de compilación (cualquier cadena única servirá)
y en su código lógico personalizado llame
invalidateTags
con su propia etiquetasi desea leer más sobre los componentes internos de caché de drupal 8
fuente
cache_tags.invalidator
servicio en lugar de hacer referencia a una clase directamente.