Gostaria de usar a nova marcação de cache no D8 para ajudar a manter o conteúdo relacionado de diferentes tipos (entidades, nós, blocos, etc.) sincronizados. Mas, lendo a documentação atualmente disponível sobre esse recurso, não entendo como adicionar minha própria tag de cache aos itens de conteúdo ao criar / atualizar esses itens.
Por exemplo, ao criar um novo nó de um tipo Store, gostaria de adicionar o local da tag de cache: new_york_123 e o mesmo para um bloco. Então, se eu alterasse o nome de exibição do local 123 de Nova York para SoHo, poderia invalidar a tag de cache e atualizar todo o conteúdo relacionado.
Respostas:
Aqui está como usar tags de cache no contexto de blocos personalizados que eu tentei e funciona, mas acho que se aplica a outros contextos
Use tags drupal padrão
Na matriz de compilação, você pode especificar
cache > tags > node_list
e esse conteúdo do bloco será invalidado (atualizado) quando QUALQUER NOME for alterado, sem mais nada a fazer da sua parteComo alternativa, você pode inserir um ou mais IDs de nó / termo / usuário para invalidar a matriz em nós ou termos específicos, conforme mostrado no comentário de código acima. Nota: você pode misturar e combinar nós, termos, usuários e tags personalizadas conforme desejar.
Use suas próprias tags
se você quiser ter sua própria maneira de limpar sua matriz de compilação, adicione sua tag exclusiva personalizada na matriz de compilação (qualquer string exclusiva serve)
e em sua chamada lógica de código personalizado
invalidateTags
com sua própria tagse você quiser ler mais sobre os internos do cache do drupal 8
fonte
cache_tags.invalidator
serviço em vez de referenciar uma classe diretamente.