Как очистить или обновить кэш для страницы по идентификатору в TYPO3 - PullRequest
0 голосов
/ 22 ноября 2018

Мне нужно очистить кеш для конкретной страницы из бэкэнда TYPO3 версии 8 в Расширении от моего контроллера.Я нашел решение для очистки всех кешей, но это последний вариант.

Ответы [ 4 ]

0 голосов
/ 06 мая 2019

Из контекста контроллера (как было задано ..)

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

Этот вызов включает отмеченный ответ выше.

0 голосов
/ 22 ноября 2018

Ядро обрабатывает очистку кэша страниц с использованием 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);
}
0 голосов
/ 21 февраля 2019

Извините, я не могу прокомментировать непосредственно ответ Бенджамина.Второе решение с DataHandler работает только в контексте бэкэнда.Если вы хотите очистить кеш от своего внешнего плагина, вы должны использовать помеченный ответ.

0 голосов
/ 22 ноября 2018

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

...