我需要从Controller中的扩展中刷新TYPO3版本8后端的特定页面的缓存。我找到了刷新所有缓存的解决方案,但这是最后一个选择。
答案 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]);
此呼叫包括上面标记的答案。