gpt4 book ai didi

symfony - 在学说实体保存期间更新/插入缓存条目

转载 作者:可可西里 更新时间:2023-11-01 11:36:44 25 4
gpt4 key购买 nike

有大量关于如何在 Doctrine 中使用结果缓存的文档。但是,我无法找到关于如何在实体保存期间更新/插入缓存的单个文档。目前我正在使用更新。

$entityManager = $this->getEntityManager();
$cacheDriver = $entityManager->getConfiguration()->getResultCacheImpl();

$cacheDriver->delete($key);

$searchEntity->setUpdatedAt(new \DateTime())
->setData([]);

$entityManager->persist($searchEntity);
$entityManager->flush();

并插入类似的东西

$searchEntity = new Entity;
$entityManager->persist($searchEntity);
$entityManager->flush();

但是在这两种情况下,我都想刷新/插入缓存。有什么方法可以在不手动创建/更新缓存条目的情况下实现这种简单易行的方法。

最佳答案

创建了一个 social network使用包含 Doctrine 的 Symfony 标准版。我遇到过这个问题,当时我觉得在插入/更新后继续删除缓存和查询数据库是一种浪费,但要插入/更新的数据随时可用。

我完全同意,对此没有明确的文档。在我数周的研究中,除了在数据库插入时手动构建缓存外别无选择,它是一个数组数组,即多维数组。我必须查询数据库并创建一个缓存条目,为其分配一个值,将其传递给 twig 并在我的开发环境中进行 var 转储以查看它的外观并在成功插入时模仿其结构(您可以为创建一个监听器这个)。由于我的社交网络是关于折扣的,每次有人被点赞时,我都会通过在该数组中搜索匹配的 id 键来更新缓存,然后通过添加(或减去 1)来更新其总点赞数,这同样适用于总评论和分享等. 当我开始使用 Apc 缓存时,我已经成功地测试了这一点,然后是 Memcached,现在我当前的缓存是 Redis,它仍在工作。

请引用我的老question对于一些示例代码

关于symfony - 在学说实体保存期间更新/插入缓存条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com