Caching 如何在TYPO3中按id刷新或更新页面缓存
我需要刷新控制器扩展中TYPO3版本8后端特定页面的缓存。我找到了刷新所有缓存的解决方案,但这是最后一个选项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
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]);