Caching 如何在TYPO3中按id刷新或更新页面缓存

Caching 如何在TYPO3中按id刷新或更新页面缓存,caching,typo3,typo3-8.x,Caching,Typo3,Typo3 8.x,我需要刷新控制器扩展中TYPO3版本8后端特定页面的缓存。我找到了刷新所有缓存的解决方案,但这是最后一个选项 GeneralUtility::makeInstance(\TYPO3\CMS\Core\Cache\CacheManager::class) ->FlushCachesingGroupByTags('pages',['pageId.'$id]); 核心使用DataHandler处理页面缓存清除 请参阅:\TYPO3\CMS\Recordlist\Recordlist::clearCac

我需要刷新控制器扩展中TYPO3版本8后端特定页面的缓存。我找到了刷新所有缓存的解决方案,但这是最后一个选项

GeneralUtility::makeInstance(\TYPO3\CMS\Core\Cache\CacheManager::class)
->FlushCachesingGroupByTags('pages',['pageId.'$id]);

核心使用DataHandler处理页面缓存清除

请参阅:\TYPO3\CMS\Recordlist\Recordlist::clearCache

/**
 * Clears page cache for the given page id, $this->id
 */
public function clearCache(int $pageId)
{
    $tce = GeneralUtility::makeInstance(DataHandler::class);
    $tce->start([], []);
    $tce->clear_cacheCmd($pageId);
}

对不起,我不能直接对本杰明的回答发表评论。
带有DataHandler的第二个解决方案仅在后端上下文中工作。如果要从前端插件中清除缓存,必须使用标记的答案。

在控制器上下文中(按要求…)


此电话包括上面标记的答案。

谢谢,我也会尝试。这两种解决方案之间的区别是什么?另一种解决方案使用来自
数据处理程序的内部逻辑(标记命名方案)。
DataHandler
内部也使用了
CacheManager
。lol这是最好的答案吗?
$this->cacheService->clearPageCache([$pageIds]);