如何在TYPO3中按ID刷新或更新页面的缓存

时间:2018-11-21 21:23:06

标签: caching typo3 typo3-8.x

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

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

核心使用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);
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

在控制器上下文中(根据要求)。

$this->cacheService->clearPageCache([$pageIds]);

此呼叫包括上面标记的答案。

相关问题