如何使用它的密钥从树枝缓存中删除项目

问题描述 投票:0回答:1

我在 Symfony 中使用 twig 缓存标签。

文档中所述,我使用updatedAt实体属性并设置缓存标签,如下所示:

{% "post-" ~ post.id ~ "-" ~ post.updatedAt %}

可以使用在帖子实体上设置新的 UpdatedAt 属性的 eventSubscriber 来处理帖子更新、类别删除或更新和评论删除。

但是如何删除帖子删除时缓存的帖子?

php symfony
1个回答
0
投票

您可以通过注入

Symfony\Contracts\Cache\TagAwareCacheInterface
并使用
invalidateTags
方法从任何地方删除缓存。

例如:

class PostDeleteHandler
{
    public function __construct(
        private readonly TagAwareCacheInterface $twigCache,
    ) {
    }

    protected function deletePost (Post $post) : void {
        ...
        $this->twigCache->invalidateTags(['post_delete_tag']);
    }

//post_delete.html.twig
...
{% cache "post_delete;"  tags('post_delete_tag') %}
  {{ post.title }}
{% endcache %}
...
© www.soinside.com 2019 - 2024. All rights reserved.